Forum: Mikrocontroller und Digitale Elektronik Bascom Loop durckgänge zählen


von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Hallo an alle...

Ich versuche micht gerade in Bascom...

Eigentlich ist das vorhaben recht simpel aner ich komme nicht weiter und 
würd mich über hilfe freuen.

Ich würde gerne ein Lauflicht aus 8 LEDs ersteller was von 1-8 an geht 
und danach wieder von 1-8 aus geht.
Dies soll 10 mal laufen und danach soll der Ablauf wie folgt sein:
8-1 an und von 8-1 aus. So soll das Lauflicht die richtung wechseln.

Wie kann ich die durchgänge Zählen in der das Programm den Loop 
wiederholt und nach 10 wiedrholungen soll es dann zum nächsten loop 
springe.
Geht das so oder habe ich da einen Gedanken Fehler oder get das 
einfacher?

Diese " Lauflichtprogramme" sollte auch später mit anderen getausch 
werden.

Hier mein Versuch:


$regfile = "attiny24.dat"
$crystal = 80000
Config Porta = Output
$swstack = 10
Dim Zaehler As Word

Led1 Alias Porta.0
Led2 Alias Porta.1
Led3 Alias Porta.2
Led4 Alias Porta.3
Led5 Alias Porta.4
Led6 Alias Porta.5
Led7 Alias Porta.6
Led8 Alias Porta.7


Do

   Incr Zaehler
   Led1 = 1
   Wait 1
   Led2 = 1
   Wait 1
   Led3 = 1
   Wait 1
   Led4 = 1
   Wait 1
   Led5 = 1
   Wait 1
   Led6 = 1
   Wait 1


   Led1 = 0
   Wait 1
   Led2 = 0
   Wait 1
   Led3 = 0
   Wait 1
   Led4 = 0
   Wait 1
   Led5 = 0
   Wait 1
   Led6 = 0
   Wait 1



Loop

End

Vielen dank

: Verschoben durch User
von Charly B. (charly)


Lesenswert?

z.B.



$regfile = "attiny24.dat"
$crystal = 80000
Config Porta = Output
$swstack = 10
Dim Zaehler As Word

Led1 Alias Porta.0
Led2 Alias Porta.1
Led3 Alias Porta.2
Led4 Alias Porta.3
Led5 Alias Porta.4
Led6 Alias Porta.5
Led7 Alias Porta.6
Led8 Alias Porta.7


Do

 for  Zaehler = 1 to 10
   Led1 = 1
   Wait 1
   Led2 = 1
   Wait 1
   Led3 = 1
   Wait 1
   Led4 = 1
   Wait 1
   Led5 = 1
   Wait 1
   Led6 = 1
   Wait 1


   Led1 = 0
   Wait 1
   Led2 = 0
   Wait 1
   Led3 = 0
   Wait 1
   Led4 = 0
   Wait 1
   Led5 = 0
   Wait 1
   Led6 = 0
   Wait 1

 next Zaehler

 for  Zaehler = 1 to 10
   ' hier wieder was neues, usw. usw.
 next Zaehler


Loop

End

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Super vielen Dank für die schnelle Hilfe:

Funktioniert perfekt!!

Gruss marcel

von Simpel (Gast)


Lesenswert?

$regfile = "attiny24.dat"
$crystal = 80000
$swstack = 10

Config Porta = Output

Dim Wiederholung as Byte
Dim Zähler as Byte
Dim Dummy as Byte


Do

'10mal 1->8 an... 1->8 aus:
For Wiederholung= 1 to 10
  For Zähler = 0 to 7
   Dummy = 2 ^ Zähler
   PortA = PortA + Dummy
   Wait 1
  Next Zähler

  For Zähler = 0 to 7
   Dummy = 2 ^ Zähler
   PortA = PortA - Dummy
   Wait 1
  Next Zähler
Next Wiederholung


'10mal 8->1 an... 8->1 aus:
For Wiederholung = 1 to 10
  For Zähler = 7 to 0 Step -1
   Dummy = 2 ^ Zähler
   PortA = PortA + Dummy
   Wait 1
  next Zähler

  For Zähler = 7 to 0 Step -1
   Dummy = 2 ^ Zähler
   PortA = PortA - Dummy
   Wait 1
  Next Zähler
Next Wiederholung

von Simpel (Gast)


Lesenswert?

grrr...   "Loop" fehlt am Ende

von Charly B. (charly)


Lesenswert?

Gerne Marcel,
viel erfolg & Spass damit

vlG & Frohes Fest
Charly

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Hallo an alle,

ich habe noch eine andere Frage zu diesem thema von oben.
Die folgenden Programmzeile sind so problemlos lauffähig.
Die Zeile werden immer von oben nach unten abgearbeitet.
Wenn ich aber jetzt möchte das während des Ablauf dieser Zeilen
Prarell zu den LED 1 un 2 zb. die ausgänge 3 und 4 in einem anderem
Muster oder geschwindigkeit abgearbeitet werden... wie mache ich dies.

LG Marcel


$regfile = "attiny24.dat"
$crystal = 80000
Config Porta = Output
$swstack = 10
Dim Zaehler As Word

Led1 Alias Porta.0
Led2 Alias Porta.1
Led3 Alias Porta.2
Led4 Alias Porta.3
Led5 Alias Porta.4
Led6 Alias Porta.5
Led7 Alias Porta.6
Led8 Alias Porta.7


Do

 for  Zaehler = 1 to 10
   Led1 = 1
   Wait 1
   Led2 = 1
   Wait 1


   Led1 = 0
   Wait 1
   Led2 = 0
   Wait 1

 next Zaehler

 for  Zaehler = 1 to 10
   ' hier wieder was neues, usw. usw.
 next Zaehler


Loop

End

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.