Белов, А.В. Микроконтроллеры 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. Кодовый замок с музыкальным звонком Ну, и в заключение приведу пример, как можно объединить вместе две разные задачи. Посмотрим, как можно соединить описанный выше кодо вый замок и музыкальную шкатулку. Музыкальная шкатулка с успехом может выполнять функцию дверного звонка. Нужно лишь немного изме нить алгоритм запуска музыкальной программы и заставить шкатулку играть разные мелодии при нажатии одной кнопки. Постановка задачи Естественно, далеко не любые две задачи можно объединить в одном устройстве. Но данные две задачи прекрасно объединяются. Если немного доработать музыкальную шкатулку, то легко заставить ее рабо тать от одной кнопки. Менять мелодии можно при каждом очередном нажатии этой кнопки. Звучание мелодии должно начинаться при нажатии кнопки и про должаться до ее отпускания. При следующем нажатии должна звучать другая мелодия. Доработанная таким образом программа будет исполь зовать всего две линии порта. В схеме электронного замка как раз есть две свободные линии. С точки зрения объединения двух программ тоже нет никаких про блем. Так как обе эти программы вполне могут работать по отдельности.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==