О задаче z3, про 12-битный таймер. При симуляции в VMLAB, если при запуске нажать KC в Control Panel (сбросить в "0" вывод PB2), программа зацикливается в месте, где идет проверка исправности нагрузки:
- Код: Выделить всё • Развернуть
if (PINB.2 == 0)
{ /* Если на PB2 лог. "0" - нагрузка неисправна или не подключена */
while (1)
{
// будем быстро мигать (период 0.3 сек) до устранения неисправности и нового включения питания таймера
delay_ms(150); // пауза 150 мС
PORTB.0 = 1; // вЫкл светодиод
delay_ms(150); // пауза 150 мС
PORTB.0 = 0; // вкл светодиод
}; // это закрыв. скобка для while
} // это закрыв. скобка для if
и дальше, если нажать еще раз KC в Control Panel (т.е. сделать "1" на PB2), программа из этого цикла уже не выходит. Но если вместо while (1) вставить while (!PINB.2), то программа при установке "1" на PB2 выходит из этого цикла и продолжает нормальную работу.