Video: Valkyria Johnny-5 BP5 2 2024
DO-slingan i PBASIC kan göra programmeringen av BASIC Stamp i ditt elektronikprojekt lite mer kompakt. DO-loopen är ett speciellt PBASIC-uttalande som utför i huvudsak samma funktion som en etikett och ett GOTO-uttalande. Tänk på följande:
Huvud: HÖG 0 PAUSE 500 LÅG 0 PAUSE 500 GOTO Huvud
Samma funktion kan utföras utan huvudetiketten eller GOTO-satsen genom att placera de linjer som slår på och av LED-lampan mellan DO och LOOP uttalanden, så här:
DO HIGH 0 PAUSE 500 LOW 0 PAUSE 500 LOOP
Linjerna mellan DO och LOOP-satsen kommer att utföras om och om igen för obestämd tid.
"LED Flasher Program" Doug Lowe "10 juli 2011" Detta program blinkar lysdioder anslutna till stift 0, 2, 4, 6, 8 och 10 'i följd. "Den här versionen av programmet använder en DO-slinga. '{$ PBASIC 2. 5}' {$ STAMP BS2} Hastighet VAR BYTE Led VAR BYTE Hastighet = 50 Led = 0 HÖG Höjd Led PAUS Hastighet LÅG Led PAUS Hastighet Om Led <10 tHEN Led = Led + 2 ELSE Led = 0 ENDIF LOOP
Du kan lägga till ett villkorligt test på LOOP-satsen för att göra slingan villkorlig. Till exempel:
Led = 0 DO HIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LÖP TILL LED> 10
Denna kod blinkar lysdioderna på stift 0, 2, 4, 6, 8 och 10. Efter att lysdioden på stift 10 blinkats, ställer den näst sista raden ledningsvariabeln till 12. Då ser LOOP UNTIL-satsen att Led är större än 10, så att den slutar slinga.
Istället för ordet UNTIL kan du använda ordet WHILE för att markera villkoret i en DO-loop. Det finns en stor skillnad mellan UNTIL och WHILE, och skillnaden är precis som orden tyder på. När du använder ordet UNTIL, kommer slingan att utföras tills tillståndet testar sant. När du använder ordet WHILE kommer slingan att utföras tills tillståndet testar felaktigt.
Observera att du även kan inkludera tillståndstestet på DO-satsen eller på LOOP-satsen. Om du ställer tillståndstestet på DO-satsen testas tillståndet före varje utförande av slingan. Om du placerar det på LOOP-satsen testas villkoret efter slutförandet av varje slinga.
Det är vanligt att placera WHILE-tester på DO-satsen och UNTIL-tester på LOOP-satsen.
Led = 0 GÖR MED LED <11 HIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LOOP
Här testas värdet på Led före varje körning av slingan. Slingan körs så länge Led är mindre än 11.
Slingor kan vara kapslade , vilket innebär att en DO-slinga kan innehålla en annan DO-slinga.När INGEN slingor är kapslade måste innerbandet ha ett villkorligt test. Annars kommer det att slinga för evigt, och den yttre slingan kommer aldrig att ha en chans att slutföra.
I det här programmet blinkar den innersta DO-slingan de sex lamporna en gång. Det använder ett UNTIL-tillstånd för att stoppa slingan efter att den sista lysdioden har blinkat. Den yttersta DO-slingan fortsätter oändligt, vilket medför att den blinkande sekvensen fortsätter i obestämd tid.
"LED Flasher Program" Doug Lowe "10 juli 2011" Det här programmet blinkar lysdioder anslutna till stift 0, 2, 4, 6, 8 och 10 'i följd. "Den här versionen av programmet använder inbyggda DO-loopar. '{$ PBASIC 2. 5}' {$ STAMP BS2} Hastighet VAR BYTE Led VAR BYTE Hastighet = 50 DO Led = 0 DO HIGH Led PAUSE Hastighet LOW Led PAUSE Hastighet Led = Led + 2 LÖP UNDER LED> 10 LOOP