Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

64 Микроконтроллеры AVR от азов программирования... Технически переход выполняется путем записи в регистр адреса нового значения. Изменение значения регистра адреса возможно только при помощи команд передачи управления. Команда организации цикла Циклическое выполнение группы команд — очень эффективное сред ­ ство для сокращения программного кода. Иногда требуется выполнить одну и ту же группу команд несколько раз. Вместо того, чтобы много раз записывать одни и те же команды, можно заставить любой участок про ­ граммы выполняться многократно. Для этого и служат команды органи ­ зации цикла. Допустим, мы хотим создать простейшую программу, предотвращаю ­ щую ложное срабатывание кнопки. Допустим, нажатая кнопка при счи ­ тывании дает единицу, отпущенная — ноль. Для повышения надежно ­ сти мы будем считывать состояние кнопки не один, а несколько раз. Все полученные таким образом числа мы сложим между собой. Затем мы легко можем определить, каких результатов было больше: нулевых либо единичных. Допустим, что мы будем производить подряд 20 операций чтения-сложения. Теперь, если полученная сумма окажется больше десяти, то кнопку можно считать нажатой. В противном случае она считается отпущенной. Такой алгоритм называется цифровой инте ­ грирующий фильтр. Операции считывания состояния кнопки и сложения полученных результатов удобно оформить в виде цикла. На рис. 2.3 показан ход выполнения подобной программы. Как и на предыдущем рисунке, ква ­ дратиками обозначены обычные операторы. Кружком с буквой Ц обо ­ значен оператор цикла. Часть программы, называемая телом цикла, выполняется нужное количество раз. Каждое такое выполнение называ ­ ется проходом цикла. Важным элементом оператора цикла служит так называемый параметр цикла. Параметр цикла — это число, которое сначала равно количеству про ­ ходов. При каждом новом проходе параметр цикла уменьшается. Обычно параметр цикла записывается в один из рабочих регистров процессора. В нашем случае параметр цикла равен 20. На рисунке показаны несколько Если это не последний цикл Тело цикла Если исчерпан счетчик циклов Рис. 2.3. Демонстрация работы оператора цикла

RkJQdWJsaXNoZXIy MTExODQxMg==