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

204 Микроконтроллеры AVR от азов программирования... if else _________________________________________________________ Условный оператор. Этот оператор позволяет выполнять разные опе ­ рации в зависимости от некоторого условия. В программе на языке СИ оператор записывается следующим образом: if (условие) { Набор операторов 1 } else { Набор операторов 2 } Условие — это любое логическое выражение. Если результат этого выражения — истина (не равен 0), то выполняется «Набор операторов 1». В противном случае выполняется «Набор операторов 2». Оба набора операторов — это любые допустимые операторы языка СИ. Каждый из операторов в наборе должен оканчиваться точкой с запя ­ той. Добавочное слово else не обязательно. Его можно исключить вме ­ сте с набором операторов 2. Тогда, если условие ложно, оператор не будет выполнять никаких действий. Описание программы (листинг 5.4) Начало программы (до строки 30) сформировано автоматически и полностью соответствует соответствующей части предыдущей про ­ граммы (листинг 5.2). Я лишь немного сократил комментарии для того, чтобы не перегружать текст программы лишней информацией. Тело основного цикла претерпело значительные изменения. Теперь он занимает строки 31 — 37. В строке 32 расположена процедура ожида ­ ния нажатия кнопки. Она представляет собой пустой цикл while. В теле цикла (две фигурные скобки) нет ни одного оператора. Листинг 5.4 Project • Prog2 Пример 2 Управление светодиодом Chip type ' ATtiny2313 Clock frequency : 4,000000 MHz Data Stack size : 32 1 «include <tiny2313.h> 2 void main(void) 3 ^LKPR=0x80; // Отключить деление частоты системного генератора 4 CLKPR=OxOO; 5 P0RTA=0x00; // Инициализация порта А 6 DDRA=OxOO; 7 PORTB=OxFF, // Инициализация порта В 8 DDRB=OxFF, 9 P0RTD=0x7F; // Инициализация порта D

RkJQdWJsaXNoZXIy MTExODQxMg==