Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
230 Микроконтроллеры AVR от азов программирования... задержки. Прежде, чем это сделать, попробуем описать алгоритм ее работы. Данный алгоритм предполагает, что все необходимые настройки таймера предварительного делителя произведены до первого вызова под программы, таймер запущен и находится в режиме непрерывного счета. Алгоритм подпрограммы задержки представлен ниже. 1. Записать в счетный регистр таймера Т1 нулевое значение. 2. Начать цикл проверки содержимого счетного регистра. В теле цикла программа должна многократно считывать содержимое счетного регистра таймера и проверять, не достигло ли оно своего конечного значения (то есть значения 780). 3. При достижении счетным регистром конечного значения, завершить цикл проверки. 4. Выйти из подпрограммы задержки. Программа на Ассемблере Программа «Бегущие огни» с новым вариантом подпрограммы задержки приведена в листинге 5.11. Новая подпрограмма задержки использует таймер Т1 и описанный выше алгоритм работы. Рассмотрим подробнее, как работает такая программа. А начнем, как обычно, с опи сания новых для нас операторов. .equ _________________________________________________________ Псевдооператор присвоения. Название оператора происходит от английского слова «эквивалентно» (equality). Используется для присво ения имен различным константам. В строке 5 листинга 5.11 числу 780 присваивается имя kdel. Теперь в любом месте программы вместо числа 780 можно применять константу kdel. Имя для константы имеет то же значение, что и имя для переменной. Во-первых, по осмысленному имени легко понять назначение константы. Например, kdel расшифровыва ется, как «коэффициент деления». А, во-вторых, это удобно при смене значения. Поменяйте в строке 5 число 780, к примеру, на 800, и везде, где бы ни встретилась константа kdel, она уже будет иметь новое значение. cpi _________________________________________________________ Сравнение содержимого РОН с константой. Эта команда имеет два параметра. Первый параметр — имя регистра общего назначения, содер жимое которого подлежит сравнению. Второй параметр — некая кон станта, с которой сравнивается содержимое РОН. По результатам срав нения устанавливаются все флаги регистра SREG. Флаги устанавливаются точно так же, как если бы содержимое РОН вычиталось из константы. А именно: флаг переноса С устанавливается в том случае, если при вычи
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==