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

330 Микроконтроллеры AVR от азов программирования... В строке 30 обнуляется значение счетного регистр таймера. С момента обнуления таймера начинается формирование заданного временного интервала. В строке 31 обнуляется значение флага задержки. В строке 32 выполняется команда глобального разрешения прерываний. На этом настройка таймера и системы прерываний заканчиваются. Теперь оста ­ ется лишь организовать цикл ожидания. Цикл ожидания, предназначенный для работы в режимах 1 и 3, орга ­ низован в строке 33. Это пустой цикл, организованный при помощи опе ­ ратора while. В качестве условия продолжения цикла выбрано равен ­ ство флага f 1 z нулю. То есть пока f 1 z равен нулю, цикл ожидания будет продолжаться. А закончится он в тот момент, когда процедура обработки прерывания изменит значение флага f lz на единичное. В режиме 2 используется другой цикл ожидания, который находится вне функции wait (). Поэтому в строке 33, кроме цикла ожидания, име ­ ется оператор сравнения if. Он проверяет значение переменной kodz. Благодаря оператору сравнения, цикл ожидания в строке 33 выполняется только в том случае, когда kodz не равен двум. 5.12. Кодовый замок с музыкальным звонком Ну, и в заключение приведу пример, как можно объединить вместе две разные задачи. Посмотрим, как можно соединить описанный выше кодо ­ вый замок и музыкальную шкатулку. Музыкальная шкатулка с успехом может выполнять функцию дверного звонка. Нужно лишь немного изме ­ нить алгоритм запуска музыкальной программы и заставить шкатулку играть разные мелодии при нажатии одной кнопки. Постановка задачи Естественно, далеко не любые две задачи можно объединить в одном устройстве. Но данные две задачи прекрасно объединяются. Если немного доработать музыкальную шкатулку, то легко заставить ее рабо ­ тать от одной кнопки. Менять мелодии можно при каждом очередном нажатии этой кнопки. Звучание мелодии должно начинаться при нажатии кнопки и про ­ должаться до ее отпускания. При следующем нажатии должна звучать другая мелодия. Доработанная таким образом программа будет исполь ­ зовать всего две линии порта. В схеме электронного замка как раз есть две свободные линии. С точки зрения объединения двух программ тоже нет никаких про ­ блем. Так как обе эти программы вполне могут работать по отдельности.

RkJQdWJsaXNoZXIy MTExODQxMg==