Ну и писать программку я начал с этой функции:
PHP код:
|
//Сканирование кнопки void key_scan(void) { if KeyPress //Если кнопка нажата { //Проверим, давно ли её нажали if (KeyNew) //Если флаг установлен (значит "давно") { count++; //Увеличиваем счётчик задержки if (count›longkey) //Если длинное нажатие { bright_ch(); //Начинаем менять компаратор ШИМ count--; //Декремент счетчика(увеличивать-то его больше никчему) PWM_on = 1; } //Выход } else //Нажали только что, на это и укажем { KeyNew = 1; //Устанавливаем флаг } //Выход } else //Если кнопка не нажата Это может означать, { //что её и не нажимали или только что отпустили, вот это и проверим даьше if (KeyNew) //Если флаг установлен (только что отпустили) { //Проверим, до скольки успели досчитать if (count‹longkey) //Если меньше длинного(короткое нажатие) {//Можно было и объединить, но не люблю я двойные условия, МК их всё равно по очереди сделает if (count›shortkey) //Если больше минимального (короткое, но не дребезг) { led_on_off(); //Включаем/выключаем фонарь } //Иначе - Это был дребезг } } clr_var(); //Сброс переменных } //Выход KeyEXE = 0; //Запрет опроса кнопок #asm("sleep") //Усыпляем МК }
|
...сначала задал логику работы всей программке(самое сложное), а потом занялся мелочами - исполнением конкретных малых задач.
Сообщение от poligon_85
|
Кстати вылезла проблема максимальной яркости.
|
Сейчас сделаем. Надо немного дописать функцию изменения яркости...