Video: COME CREARE UN BEAT TRAP CON FL STUDIO [TUTORIAL ITA] 2025
Il ciclo PBASIC FOR farà sì che il BASIC Stamp nel progetto di elettronica esegua un ciclo un certo numero di volte. È anche un ottimo strumento di programmazione per eseguire un'azione su più pin di I / O. Pertanto, un ciclo FOR è il modo ideale per implementare un programma LED Flasher.
La struttura di base di un ciclo FOR si presenta così:
PER contatore = valore iniziale A valore finale Istruzioni … SUCCESSIVO
Ecco un esempio che lampeggia il LED sul pin 0 dieci volte:
X VAR BYTE PER X = 1 TO 10 HIGH 0 PAUSE 500 LOW 0 PAUSE 500 NEXT
In questo esempio, il ciclo viene eseguito dieci volte. Il valore della variabile X viene aumentato di 1 ogni volta attraverso il ciclo.
Nell'esempio precedente, il programma non utilizzava effettivamente la variabile contatore. Questo è comune nei loop di FOR; a volte l'unico scopo della variabile contatore è controllare quante volte viene eseguito il ciclo. Ma puoi usare la variabile contatore all'interno del ciclo. Ad esempio, ecco un loop che rende ogni pin I / O su Stamp HIGH per un decimo di secondo:
IO_Pin VAR BYTE FOR IO_Pin = 0 TO 15 HIGH IO_Pin PAUSE 100 LOW IO_Pin NEXT
Normalmente, la variabile contatore viene aumentata di uno su ciascun passaggio attraverso il ciclo. È possibile utilizzare la parola chiave STEP per specificare un valore di passo diverso, se lo si desidera. Quando si utilizza la parola chiave STEP, la struttura di base dell'istruzione FOR si presenta come segue:
PER contatore = valore iniziale TO valore finale STEP valore-passo istruzioni … SUCCESSIVO
Ad esempio, è possibile far lampeggiare i LED solo sui piedini pari come questo:
Led VAR Byte FOR Led = 0 TO 10 STEP 2 HIGH LED PAUSE 100 LOW Led NEXT
Un'altra caratteristica interessante dei loop FOR è che possono contare all'indietro. Tutto ciò che devi fare è specificare un valore iniziale più grande del valore finale, come questo:
Led VAR Byte FOR Led = 10 TO 0 STEP 2 HIGH Led PAUSE 100 LOW Led NEXT
Questa versione del LED Flasher il programma utilizza una coppia di loop FOR per lampeggiare prima i LED in una direzione e poi nella direzione opposta. Il primo ciclo FOR lampeggia i LED sui pin 0, 2, 4, 6 e 8. Quindi, il secondo ciclo FOR lampeggia i LED sui pin 10, 8, 6, 4 e 2. Entrambi i loop FOR sono contenuti in un DO loop che mantiene i LED che rimbalzano avanti e indietro indefinitamente.
'Programma LED Flasher' Doug Lowe '10 luglio 2011 "Questo programma lampeggia LED avanti e indietro sui piedini 0, 2, 4, 6, 8 e 10', come gli occhi Cylon. "Questa versione del programma utilizza i loop FOR.'{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Main: FOR Led = 0 A 8 STEP 2 HIGH Led PAUSE 100 LOW Led NEXT FOR Led = 10 TO 2 STEP 2 HIGH LED PAUSE 100 LOW Led NEXT GOTO Principale
Quando i cicli FOR sono nidificati, i cicli più interni completano l'intero ciclo ogni volta attraverso il ciclo esterno. Se un ciclo FOR che si ripete dieci volte viene inserito in un ciclo esterno che si ripete dieci volte, le istruzioni all'interno del ciclo più interno eseguiranno un totale di 100 volte, dieci volte per ognuna delle dieci ripetizioni del ciclo esterno.
Questo utilizza un ciclo FOR esterno che varia il tempo di ritardo per le istruzioni PAUSE. Il risultato è che i LED si muovono molto velocemente all'inizio, ma rallentano di 10 ms ad ogni ripetizione del loop esterno fino a quando il ritardo raggiunge un secondo per LED.
'LED Flasher Program' Doug Lowe '10 luglio 2011 "Questo programma fa lampeggiare i LED collegati ai pin 0, 2, 4, 6, 8 e 10' avanti e indietro, come gli occhi Cylon." Questa versione del programma usa i cicli FOR-NEXT nidificati per rallentare il movimento radicale dei LED. '{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Speed VAR Word FOR Speed = 10 TO 1000 STEP 10 FOR Led = 0 A 8 STEP 2 HIGH Led PAUSE Velocità LOW Led NEXT PER Led = 10 A 2 STEP 2 HIGH PAUSE Led Velocità LOW Led NEXT NEXT
