
Views: 1212
Вариант формирование единичного нажатия и формирования сигнала удержания клавиши.
char KLAV02 (void) // { if (button02==0) // проверяем, кнопка нажата? уровень низкий? { _delay(10000); // подождем 10 мСек. задержка для устранения "дребезга" if (button02==0) // и еще раз проверим, кнопка нажата { if (!timerpovtor02&&!button02DOUN) // проверяем бит, кнопка была нажата до этого? { timerpovtor02=DLITUD; // таймер задежки на время удержание клавиши return 1; // одно нажатие } else { timerpovto02r--; // if(!timerpovtor02) // { timerpovtor02=DLITUD; // button02DOUN=1; // return 2; // удержание кнопки } return 0; // ожидание отработки таймера } } } button02DOUN=0; // сброс бита сигнал удержания сформирован timerpovtor02=0; return 0; }
Эта функция при нажатии на кнопку button02 функция возвращает один раз 1 при обращении к этой функции. Через количество обращений равное DLITUD функция будет возвращать значение 2.
Для описания кнопки button02 используйте
#define button02 RC3 // привязка имя к конкретному порту
Для описания количество обращений для формирования кода удержания/авто повтора (2)
#define DLITUD 25 // длительность удержания клавищи для выдачи кода удержания/автоповтор
Для вызова и обработки клавиши, функцию надо вставить в главный цикл программы и контролировать при помощи условия, например:
if(KLAV02()==1) { ..... } if(KLAV02()==2) { ..... }
Для нескольких кнопок можно использовать несколько функций изменение имя и добавив соответствующие биты контроля состояния, например:
char KLAV01 (void); char KLAV02 (void); char KLAV03 (void); char KLAV04 (void); #define button01 RA4//выбор окна #define button02 RC5//функция кнопок #define button03 RC4//volum_P #define button04 RC3//volum_M bit button01DOUN,button02DOUN,button03DOUN,button04DOUN; char timerpovtor01, timerpovtor02, timerpovtor03, timerpovtor04;
Пример актуален без изменений для компилятора MPLAB® XC8 Compiler.
Это может быть интересно
APA102 – светодиоды со встроенным драйвером и SPI интерфейсом
Views: 3476 APA102 В 2014 году фирма Shenzhen Led Color Optoelectronic Co., Ltd http://www.szledcolor.com/ начала производство светодиодов на драйвере APA102. Это серия так называемых светодиодов со встроенным драйвером. Основной особенностью этих …Система AT команд версии V2.0 для ESP8266 и ESP32
Views: 13543 Появление нового модуля на базе ESP32 заставило систематизировать систему AT команд, а так же систему обновления и для модулей на базе ESP8266. Начиная с версии v2.0 в ESP8266 …MAX7219/21 и 8х8 LED дисплеи
Views: 1053 MAX7219, MAX7221 предназначены для вывода информации на 8 разрядов семисегментного индикатора, но на нем легко организовать вывод на светодиодные индикаторы 8х8. продолжение следует…. Это может быть интересноVU Meter Tower ART
Views: 1726 Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю …Arduino LCD + STONE STVI056WT-01 + Strain gauge
Views: 623 Author li grey email: greyli1987@outlook.com The strain assessment instrument is used to assess the degree of corresponding muscle strain by obtaining the muscle surface action potential through silver …ch-светомузыка от теории до реализации
Views: 902 Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического …MCC – K42 – настройка модуля DMA
Views: 960 MCC – в версии v.3.95.0 и начиная ядра 4.85.0 конфигуратор предоставляет графический интерфейс для настройки модуля DMA. Для начала: Посмотреть какая версия МСС можно в закладке версии, если …Модуль CAN в микроконтроллерах PIC18
Views: 5926 Введение CAN последовательный интерфейс связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высокой помехозащищенностью. Протокол связи полностью определен Robert Bosch GmbH, в спецификации требований …Toyota Auto Fader – Модуль включения усилителя
Views: 2076 Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить …Проект с использованием MCC часть 03
Views: 1697 Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки …