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