Проекты электроники: как использовать петли DO в коде PBASIC

Электроника Проекты: как использовать петли DO в коде PBASIC - манекены

Цикл DO в PBASIC может сделать программирование BASIC Stamp в вашем проекте электроники немного более компактным. Цикл DO представляет собой специальный оператор PBASIC, который выполняет практически ту же функцию, что и метка, и оператор GOTO. Например, рассмотрите следующее:

 Main: HIGH 0 PAUSE 500 LOW 0 PAUSE 500 GOTO Main 

Та же функция может быть выполнена без метки Main или GOTO, поместив линии, которые включают и выключают светодиод между операциями DO и LOOP, например:

 DO HIGH 0 PAUSE 500 LOW 0 PAUSE 500 LOOP 

Строки между операторами DO и LOOP будут выполняться снова и снова неограниченно.

 'LED Flasher Program' Doug Lowe '10 июля 2011 г. «Эта программа мгновенно мигает светодиодами, подключенными к контактам 0, 2, 4, 6, 8 и 10». В этой версии программы используется цикл DO. '{$ PBASIC 2. 5}' {$ STAMP BS2} Скорость VAR BYTE Led VAR BYTE Speed ​​= 50 Led = 0 DO HIGH Led PAUSE Скорость LOW Led PAUSE Скорость IF Led <10 tHEN Led = Led + 2 ELSE Led = 0 ENDIF LOOP 

Вы можете добавить условный тест в инструкцию LOOP, чтобы сделать цикл условным. Например:

 Led = 0 DO HIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LOOP UNTIL Led> 10 

Этот код будет мигать светодиодами на выводах 0, 2, 4, 6, 8 и 10. После того, как светодиод на штыре 10 мигает, следующая строка устанавливает Led-переменную в 12. Затем оператор LOOP UNTIL видит, что Led больше 10, поэтому он останавливает цикл.

Вместо слова UNTIL вы можете использовать слово WHILE для обозначения условия в цикле DO. Между UNTIL и WHILE существует существенное различие, и разница точно так же, как предлагают слова. Когда вы используете слово UNTIL, цикл будет выполняться до тех пор, пока условие не проверит true. Когда вы используете слово WHILE, цикл будет выполняться до тех пор, пока условие не проверит false.

Обратите внимание, что вы также можете включить тест состояния в инструкцию DO или в инструкцию LOOP. Если вы поместите тест условия в оператор DO, условие проверяется до на каждом выполнении цикла. Если вы поместите его в оператор LOOP, условие будет протестировано после завершения каждого цикла.

Обычным является размещение тестов WHILE в инструкции DO и UNTIL в инструкции LOOP.

 Led = 0 DO WHILE LED <11 hIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LOOP 

Здесь значение Led проверяется перед каждым исполнением цикла. Цикл выполняется до тех пор, пока Led меньше 11.

Петли DO могут быть вложенными , что означает, что один цикл DO может содержать другой цикл DO.Когда DO петли вложены, внутренний цикл должен иметь условный тест. В противном случае он будет зависеть навсегда, а внешний цикл никогда не будет иметь возможности завершить.

В этой программе самая внутренняя петля DO мигает шесть светодиодов один раз. Он использует условие UNTIL, чтобы остановить цикл после того, как последний светодиод мигает. Самый дальний цикл DO продолжается бесконечно, заставляя мигающую последовательность продолжать бесконечно.

 'LED Flasher Program' Doug Lowe '10 июля 2011 г. «Эта программа мгновенно мигает светодиодами, подключенными к контактам 0, 2, 4, 6, 8 и 10». Эта версия программы использует вложенные петли DO. '{$ PBASIC 2. 5}' {$ STAMP BS2} Скорость VAR BYTE Led VAR BYTE Speed ​​= 50 DO Led = 0 DO HIGH Led PAUSE Speed ​​LOW Led PAUSE Speed ​​Led = Led + 2 LOOP UNTIL Led> 10 LOOP