Elektronikk Prosjekter: Hvordan bruke FOR Loops i PBASIC Kode

October 5  by Eliza

Den PBASIC FOR løkke vil gjøre BASIC Stamp i din elektronikk prosjekt utføre en sløyfe et visst antall ganger. Det er også en stor programmeringsverktøy for å utføre en handling på flere I / O pins. Dermed er en FOR løkke den ideelle måten å implementere en LED Flasher program.

Den grunnleggende strukturen i en FOR løkke ser slik ut:

FOR teller = start-verdi til sluttverdi
Uttalelser ...
NESTE

Her er et eksempel som blinker lysdioden på pinne 0 ti ganger:

X VAR BYTE
FOR X = 1 TIL 10
HIGH 0
PAUSE 500
LAV 0
PAUSE 500
NESTE

I dette eksempel kjøres løkken ti ganger. Verdien av variabelen X økes med 1 hver gang gjennom løkken.

I forrige eksempel, gjorde programmet ikke faktisk bruke tellervariabelen. Det er vanlig i FOR sløyfer; noen ganger den eneste hensikt for tellervariabelen er å kontrollere hvor mange ganger løkken utføres. Men du kan bruke tellervariabelen i sløyfen. For eksempel, her er en sløyfe som gjør hver I / O-pin på Stamp HIGH for en tidel av et sekund:

IO_Pin VAR BYTE
FOR IO_Pin = 0 til 15
HIGH IO_Pin
PAUSE 100
LAV IO_Pin
NESTE

Normalt blir telleren variabel økes med en på hver passering gjennom sløyfen. Du kan bruke STEP nøkkelord for å angi en annen skritt verdi hvis du vil. Når du bruker STEP søkeord, ser den grunnleggende strukturen i FOR utsagn som dette:

FOR teller = start-verdi til slutt verdi STEP step-verdi
Uttalelser ...
NESTE

For eksempel kan du blinke lysdioder på bare partalls pins som dette:

Ledet VAR Byte
FOR Led = 0 til 10 TRINN 2
HIGH Led
PAUSE 100
LAV Led
NESTE

Et annet interessant trekk ved FOR looper er at de kan telle bakover. Alt du trenger å gjøre er å angi en startverdi som er større enn sluttverdien, som dette:

Ledet VAR Byte
FOR Led = 10 til 0 TRINN 2
HIGH Led
PAUSE 100
LAV Led
NESTE

Denne versjonen av LED Flasher programmet bruker et par FOR looper å blinke lysene først i én retning, og deretter i motsatt retning. Den første FOR løkke blinker varsellampene på pinnene 0, 2, 4, 6 og 8. Deretter var det andre FOR løkke blinker lysdiodene på pinnene 10, 8, 6, 4 og 2. Både FOR sløyfer befinner seg innenfor en DO løkke som holder lysdiodene spretter frem og tilbake på ubestemt tid.

"LED Flasher Program
'Doug Lowe
"10 juli 2011
'
Dette programmet blinker lysdioder koblet til pinnene 0, 2, 4, 6, 8, og 10
'Frem og tilbake, som Cylon øyne.
'
'Denne versjonen av programmet bruker FOR sløyfer.
{$ STAMP BS2}
{$ PBASIC 2,5}
Ledet VAR Byte
Hovedbilde:
FOR Led = 0 til 8 TRINN 2
HIGH Led
PAUSE 100
LAV Led
NESTE
FOR Led = 10 TIL 2 TRINN 2
HIGH Led
PAUSE 100
LAV Led
NESTE
GOTO Hoved

Når FOR løkker er nestet, den innerste sløyfen (e) fullføre sin hele syklusen hver gang gjennom den ytre løkken. Hvis en for løkke som gjentas ti ganger er plassert inne i en ytre sløyfe som gjentas ti ganger, vil de uttalelser i den innerste sløyfe utføre totalt 100 ganger - ti ganger for hver av de ti repetisjoner av den ytre sløyfe.

Dette bruker man en ytre FOR løkke som varierer forsinkelsen for PAUSE uttalelser. Resultatet er at lysdiodene feie meget raskt til å begynne med, men sakte ved 10 ms på hver repetisjon av det ytterste løkke til forsinkelsen når ett sekund per LED.

"LED Flasher Program
'Doug Lowe
"10 juli 2011
'
Dette programmet blinker lysdioder koblet til pinnene 0, 2, 4, 6, 8, og 10
'Frem og tilbake, som Cylon øyne.
'
'Denne versjonen av programmet bruker nestet FOR-NEXT looper å bremse
'Feiende bevegelse av lysdiodene.
{$ STAMP BS2}
{$ PBASIC 2,5}
Ledet VAR Byte
Speed ​​VAR Word
FOR Speed ​​= 10 TIL 1000 TRINN 10
FOR Led = 0 til 8 TRINN 2
HIGH Led
PAUSE Speed
LAV Led
NESTE
FOR Led = 10 TIL 2 TRINN 2
HIGH Led
PAUSE Speed
LAV Led
NESTE
NESTE