1. Кратковременное нажатие кнопки - включение/выключение
2. Длительное удержание кнопки (во включенном состоянии) - регулировка яркости "по кругу" (от нуля до полного, от полного до нуля и т.д.). Отпустили кнопку - остались на текущей яркости. Краткое нажатие - полностью выключили. Ну думаю понятно. Так вот. Контроллер Mega8. Кварц 8 МГц. Запускаю Timer2 -> Fast PWM -> Делитель 8
Код: Выделить всё
for (i=0;i<255;i++) { //Плавно повышаем яркость
OCR2++;
delay_ms(20);
}
for (i=0;i<255;i++) { //Плавно понижаем яркость
OCR2--;
delay_ms(20);
}
Код: Выделить всё
if (PINB.0 == 0) {
delay_ms(40);
if (PINB.0 == 0) {
PORTB.3^=1;
}
}


