Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
240 Микроконтроллеры AVR от азов программирования... мательно следить за тем, чтобы не выбрать повторно одну и ту же ячейку для хранения разных значений. Иначе программа при записи одного зна чения испортит второе, что приведет к ошибке в ее работе. Механизм резервирования памяти позволяет транслятору контро лировать использование памяти и исключать двойное использование ячеек. Кроме того, подобный механизм вообще избавляет программиста от необходимости запоминать адреса. Все происходит автоматически. Оператор . byte имеет всего один параметр — количество ячеек, кото рые нужно зарезервировать. В нашей программе применяется лишь одна команда, резервирующая память (строка 8, листинг 5.13). В данном случае резервируется всего одна ячейка памяти. Метка buf , поставленная перед оператором, используется для обращения к зарезервированной ячейке. reti _________________________________________________________ Оператор завершения подпрограммы обработки прерывания. Действие этого оператора аналогично действию оператора ret. Он извлекает адрес из стека и передает управление по этому адресу. Различие состоит в том, что команда reti еще и устанавливает в единицу флаг глобального раз решения прерываний I. sts _________________________________________________________ Команда записи содержимого РОН в ОЗУ. Имеет два параметра. Первый параметр — адрес ячейки памяти, куда записываются данные. Второй параметр — имя регистра источника данных. В строке 49 программы содержимое регистра rab записывается в ОЗУ по адресу, определяемому меткой buf. Ids _________________________________________________________ Команда чтения информации из ячейки памяти. Прочитанная инфор мация записывается в один из РОН. Команда также имеет два параметра. Первый параметр — имя РОН, куда записываются считанные данные. Второй параметр — адрес ячейки памяти (источника данных). sei _________________________________________________________ Команда разрешения прерываний. Эта команда устанавливает флаг I. То есть разрешает все прерывания. Описание программы (листинг 5.13) Начало программы (строки 1 — 5) у вас вызывать затруднений не должно. Здесь выполняется присоединение библиотечного файла, описа ние двух переменных (temp и rab) и описание константы kdel. Подобные
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==