Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 5. Переходим непосредственно к разработке устройств и программ 213 Листинг 5.6 Project : РгодЗ Пример 3 Управление светодиодом Chip type ATtiny2313 Clock frequency . 4,000000 MHz 1 tfinclude <tiny2313.h> 2 tfinclude <delay h> 3 void main(void) 4 P0RTB=0xFF, // Инициализация порта В 5 DDRB=0xFF, 6 P0RTD=0x7F, 11 Инициализация порта D 7 DDRD=0x00; 8 ACSR=0x80; // Инициализация аналогового компаратора 9 10 11 12 13 14 15 16 17 while (1) { while (PIND.0==1) {} { PORTB 0=0; } else { PORTB. 0=1, } while (PIND 0==0) {} delay_us(200); Кроме новой для нас функции, программа, показанная на листинге 5.6, имеет еще несколько отличий от оригинала: ♦ в программе существенно сокращен блок команд инициализации; ♦ удалены все команды, созданные построителем, которые дублиру ют запись в регистры значений по умолчанию. Удаление лишних команд сокращает объем программы и облегчает ее понимание. Какие же команды были удалены? Это команды настройки тех систем, которые в данном случае не используются. Оставлены лишь команды настройки портов В и D. А также команда настройки аналого вого компаратора. 5.5. Мигающий светодиод Постановка задачи Создадим программу с мигающим светодиодом. Сформулируем усло вие следующим образом: «Создать устройство с одним светодиодом и одной управляющей кнопкой. Кнопка должна включать и выключать мигание светодиода. Пока кнопка отпущена, светодиод не должен светиться. Все время, пока кнопка нажата, светодиод должен мигать с частотой 5 Гц».
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==