heute das Thema For-Next-Schleife. Kennen bestimmt einige von Euch z.B. aus VBA. Die vorgeschriebene Schreibweise in Bascom lautet:
1 2 3
FOR var = start TO end [STEP value] ... Next var
Dieses Konstrukt läßt einen Befehlsblock beliebig oft nacheinender ausführen. Dazu wird eine Variable von einem Startwert bis zu einem Endwert gezählt, die Schrittweite kann vorgegeben werden. Wird diese nicht angegeben, wird mit +1 gearbeitet. Die Variable kann natürlich innerhalb der Schleife verwendet werden. Hier mal ein Beispiel-Programm:
'*** Variablen definieren ****************************************************** Dim Raufrunter As Integer 'Integer kann Ganzzahlen von -32768 bis +32767 enthalten Dim Zaehler As Byte
'*** Hauptschleife ************************************************************* Portb.3 = 1 'LED an PB3 aus
Do 'Beginn Hauptschleife For Raufrunter = 1 To 10 'Schleife zählt von 1 bis 10 mit Schritt 1 Print Raufrunter Wait 1 Next Raufrunter
For Raufrunter = 10 To -10 Step -2 'Schleife zählt von +10 nach -10 mit Schritt -2 Print Raufrunter Wait 1 Next Raufrunter
For Zaehler = 2 To 7 Step 2 'Schleife zählt von 2 bis 7 in 2er-Schritten Portb.3 = 0 'LED kurz Ein Waitms 300 Portb.3 = 1 'LED wieder aus Waitms 500 Next Zaehler
Loop 'Ende Hauptschleife
End
Der Programmkopf dürfte klar sein. Die Variable Raufrunter hab ich als Integer dimensioniert, sie kann somit Ganzzahlen von -32768 bis +32767 enthalten.
Zeile 19 - 22 beschreibt eine Schleife, die die Variable von 1 bis 10 raufzählt, Schrittweite ist +1, weil nicht extra angegeben. Mit jedem Mal raufzählen werden die Befehle, die zwischen For und Next aufgeführt sind, jeweils mit der aktuellen Variable ausgeführt. Den Verlauf könnt ihr ja im Terminal beobachten, wenn die Prints ausgeführt werden.
Zeile 24 - 27 ist recht ähnlich, nur wird hier die Variable von +10 nach -10 runtergezählt. Will man, daß die Variable kleiner wird, sie muß dabei gar nicht ins Minus kommen, muß der angegebene Step-Wert negativ sein, bei uns im Beispiel Step -2. Die Variable wird also folgende Werte haben: 10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10.
Zeile 29 - 34 nutzt die For-Next-Schleife, um bestimmte Befehle mehrmals auszuführen, ohne dabei den Inhalt der Variablen zu benutzen. Wir lassen hier die LED an PB3 mehrmals aufblinken. Als gaaanz kleine Aufgabe für euch, zählt die Schleife von 2 bis 7 in Schrittweite 2. Wie oft wird die LED blinken?
Gruß Gerhard
------------------------------------------------------------------------------------------- hier mein aktueller TinyKatalog
Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen der Dateianhänge angezeigt Jetzt anmelden!
BEK06.txt
hast Du wieder wenig Zeit oder ist Dir hier zu wenig Resonanz auf Deine Arbeit? Würde mich Freuen wenn Du hier noch den einen oder anderen Beitrag weiter schreibst.
ja verdammt, schon wieder ein Monat rum. Derzeit bleibt kaum Zeit übrig, ich muß, wie man so schön sagt, "Prioritäten" setzen. Hoffe daß es bald wieder leichter wird, der Frühling naht.
Aber ist schon komisch, daß kaum Fragen aufkommen. Wer ist eigentlich am Ball? Oder mach ich es zu ausführlich? Gebt mal bitte Feedback!
Gruß Gerhard
P.S. daß der Link zum Tiny-Katalog nicht mehr geht, ist mir bekannt. Leider werden alte Signaturen nicht aktualisiert, der neue sollte funktionieren.
------------------------------------------------------------------------------------------- hier mein aktueller TinyKatalog
Für mich ist es bis jetzt noch sehr Übersichtlich da ich ja schone meine Erfahrungen mit Bascom und anderen Sprachen habe. Für mich wird es dann wirklich interessant wenn es darum geht, einen Blinklicht Tiny oder Fahrtregler zu programmieren. Sprich programmieren von PPM, Timer... etc.
ich für meinen Teil bin auch dabei, wir hatten ja letztens mal Kontakt über PN. Allerdings muss ich ehrlich sagen, auch bei mir waren die letzten Tage etwas stressiger und gefüllter mit anderen Themen, das wird nun aber wieder besser!