Video: TOP 10 Electronic Engineering Projects 2024
De DO-lus in PBASIC kan het programmeren van de BASIC Stamp in uw elektronicaproject iets compacter maken. De DO-lus is een speciale PBASIC-instructie die in essentie dezelfde functie vervult als een label en een GOTO-statement. Houd bijvoorbeeld rekening met het volgende:
Hoofd: HOOG 0 PAUZE 500 LAAG 0 PAUZE 500 GOTO Hoofd
Dezelfde functie kan worden uitgevoerd zonder het hoofdlabel of de GOTO-verklaring door de lijnen te plaatsen die de LED aan- en uitzetten tussen DO en LOOP-statements, zoals deze:
DO HIGH 0 PAUSE 500 LOW 0 PAUSE 500 LOOP
De regels tussen de DO- en LOOP-statements worden steeds opnieuw oneindig uitgevoerd.
'LED Flasher-programma' Doug Lowe '10 juli 2011' Dit programma knippert LED's die op volgorde zijn verbonden met pinnen 0, 2, 4, 6, 8 en 10 '. "Deze versie van het programma gebruikt een DO-lus. '{$ PBASIC 2. 5}' {$ STAMP BS2} Snelheid VAR BYTE Led VAR BYTE Snelheid = 50 Led = 0 DOEL HOOG Led PAUZE Snelheid LAAG Led PAUZE Snelheid IF Led <10 tHEN Led = Led + 2 ELSE Led = 0 ENDIF LOOP
U kunt een voorwaardelijke test toevoegen aan de LOOP-instructie om de lus conditioneel te maken. Bijvoorbeeld:
Led = 0 DO HIGH Led PAUSE 500 LAAG Led PAUSE 500 Led = Led + 2 LOOP TOT Led> 10
Deze code knippert de LED's op pinnen 0, 2, 4, 6, 8 en 10. Nadat de LED op pin 10 is geflitst, stelt de eerstvolgende regel de led-variabele in op 12. Vervolgens ziet de instructie LOOP UNTIL dat led groter is dan 10, dus stopt hij met lussen.
In plaats van het woord UNTIL kunt u het woord WHILE gebruiken om de voorwaarde in een DO-lus te markeren. Er is een substantieel verschil tussen UNTIL en WHILE, en het verschil is precies zoals de woorden suggereren. Wanneer u het woord UNTIL gebruikt, wordt de lus uitgevoerd totdat de voorwaarde test waar is. Wanneer u het woord WHILE gebruikt, wordt de lus uitgevoerd totdat de voorwaarde false test.
Merk op dat u de conditietest ook kunt opnemen in de DO-instructie of in de LOOP-instructie. Als u de conditietest op de DO-instructie plaatst, wordt de voorwaarde getest vóór elke uitvoering van de lus. Als je het op de LOOP-instructie plaatst, wordt de voorwaarde getest na na voltooiing van elke lus.
Het is gebruikelijk om WHILE-tests te plaatsen op de DO-instructie en UNTIL-tests op de LOOP-verklaring.
Led = 0 DO WHILE Led <11 HIGH Led PAUSE 500 LAAG Led PAUSE 500 Led = Led + 2 LOOP
Hier wordt de waarde van Led getest voorafgaand aan elke uitvoering van de lus. De lus wordt uitgevoerd zolang Led minder is dan 11.
DO-lussen kunnen genest zijn, wat betekent dat één DO-lus een andere DO-lus kan bevatten.Wanneer DO-lussen worden genest, moet de binnenste lus een voorwaardelijke test hebben. Anders zal het voor altijd lus, en de buitenste lus nooit een kans om te voltooien.
In dit programma knippert de binnenste DO-lus eenmaal de zes LED's. Het maakt gebruik van een UNTIL-conditie om de lus te stoppen nadat de laatste LED flitste. De buitenste DO-lus gaat eindeloos verder, waardoor de knipperende reeks oneindig doorloopt.
'LED Flasher-programma' Doug Lowe '10 juli 2011' Dit programma knippert LED's die achtereenvolgens verbonden zijn met pinnen 0, 2, 4, 6, 8 en 10 '. "Deze versie van het programma gebruikt geneste DO-lussen. '{$ PBASIC 2. 5}' {$ STAMP BS2} Snelheid VAR BYTE Led VAR BYTE Snelheid = 50 DO Led = 0 DO HIGH Led PAUSE Snelheid LAAG Led PAUSE Snelheid Led = Led + 2 LOOP TOT Led> 10 LOOP