Video: Valkyria Johnny-5 BP5 2 2025
PBASIC FOR-sløjfen vil gøre BASIC Stamp i dit elektronikprojekt udført en loop et bestemt antal gange. Det er også et godt programmeringsværktøj til at udføre en handling på flere I / O-ben. Således er en FOR-sløjfe den ideelle måde at implementere et LED Flasher-program på.
Den grundlæggende struktur for en FOR-loop ser sådan ud:
FOR counter = startværdi TIL slutværdi Erklæringer … NÆSTE
Her er et eksempel, der blinker LED'en på pin 0 ti gange:
X VAR BYTE TIL X = 1 TIL 10 HØJ 0 PAUSE 500 LAV 0 PAUSE 500 NÆSTE
I dette eksempel udføres løkken ti gange. Værdien af variablen X øges med 1 hver gang gennem løkken.
I det foregående eksempel anvendte programmet ikke rigtig countervariablen. Det er almindeligt i FOR-løkker; undertiden er det eneste formål for tællervariabelen at kontrollere, hvor mange gange sløjfen udføres. Men du kan bruge tællervariablen inden for sløjfen. For eksempel er her en loop, der gør hver I / O-pin på Stamp HIGH i en tiendedel af et sekund:
IO_Pin VAR BYTE FOR IO_Pin = 0 TIL 15 HIGH IO_Pin PAUSE 100 LOW IO_Pin NEXT
Normalt hæves tællervariablen med en på hver passering gennem sløjfen. Du kan bruge STEP-søgeordet til at angive en anden trinværdi, hvis du vil. Når du bruger STEP-søgeordet, ser den grundlæggende struktur for FOR-sætningen sådan ud:
FOR tæller = startværdi TIL slutværdi TRIN trinværdi Erklæringer … NEXT
Du kan f.eks. Blinke lysdioder på lige de lige nummererede stifter som denne:
Led VAR Byte FOR Led = 0 TIL 10 TRIN 2 HØJ LED PAUSE 100 LOW LED NEXT
Et andet interessant træk ved FOR-løkker er, at de kan tælle bagud. Alt du skal gøre er at angive en startværdi, der er større end slutværdien, som denne:
Led VAR Byte FOR Led = 10 TIL 0 STEP 2 HØJ LED PAUSE 100 LOW LED NEXT
Denne version af LED Flasher programmet bruger et par FOR-sløjfer til at blinke LED'erne først i en retning og derefter i modsat retning. Den første FOR-loop blinker LED'erne på tapperne 0, 2, 4, 6 og 8. Derefter blinker den anden FOR-loop LED'erne på tappene 10, 8, 6, 4 og 2. Begge FOR-sløjfer er indeholdt i en DO loop, der holder LED'erne springende frem og tilbage på ubestemt tid.
'LED Flasher Program' Doug Lowe '10. juli 2011 "Dette program blinker lysdioder, der er forbundet med stifter 0, 2, 4, 6, 8 og 10' frem og tilbage som Cylon øjne. "Denne version af programmet bruger FOR-sløjfer.'{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Main: FOR Led = 0 TIL 8 STEP 2 HØJ LED PAUSE 100 LOW Led NÆSTE FOR LED = 10 TIL 2 TRIN 2 HØJ LED PAUSE 100 LOW LED NÆSTE GOTO Main
Når FOR-sløjfer er nestede, fuldender de inderste sløjfer deres hele cyklus hver gang gennem den ydre sløjfe. Hvis en FOR-sløjfe, der gentages ti gange, placeres inden for en ydre sløjfe, der gentages ti gange, vil udsagnene inden for den inderste sløjfe udføre i alt 100 gange - ti gange for hver af de ti gentagelser af den ydre sløjfe.
Denne bruger en ydre FOR-sløjfe, der varierer forsinkelsestiden for PAUSE-sætningerne. Resultatet er, at LED'erne fejer meget hurtigt i starten, men langsomt med 10 ms på hver gentagelse af den ydre loop, indtil forsinkelsen når et sekund per LED.
'LED Flasher Program' Doug Lowe '10 juli 2011 "Dette program blinker lysdioder, der er forbundet med stifter 0, 2, 4, 6, 8 og 10' frem og tilbage som Cylon øjne." Denne version af programmet bruger nestede FOR-NEXT sløjfer for at sænke LED'ens svejsende bevægelse. '{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Bytehastighed VAR Ord FOR Hastighed = 10 TIL 1000 TRIN 10 FOR LED = 0 TIL 8 TRIN 2 HØJ LED PAUSE HASTIGHED LOW LED NÆSTE FOR LED = 10 TIL 2 TRIN 2 HØJ LED PAUSE HASTIGHED LOW LED NEXT NEXT