Views: 1218
Вариант формирование единичного нажатия и формирования сигнала удержания клавиши.
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.
Это может быть интересно
Регулятор влажностиViews: 1379 Регулятор ILLISSI-CH-1000 предназначен для контроля и регулировки относительной влажности в диапазоне от 0 до 100%. Регулятор позволяет работать как в режиме осушения, так и увлажнения. Для измерения возможно …
Customs codes for exportViews: 385 Митні коди (HS Code) для надсилання посилок за кордон. Для відправки товару за кордон на сьогодні необхідно зазначати митні коди. Часто визначення коду займає багато часу. Для …
Проект с использованием MCC часть 13Views: 1250 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …
ch-4000 – универсальная печатная платаViews: 1152 На смену устаревшей плате ch-3000, пришла новая ch-4000. Плату уже можно приобрести в магазине Ворон. Схема. Плата позволяет создавать таймеры, часы реального времени, регуляторы температуры, регуляторы влажности, вольтметры, …
CCP модуль для декодирования ИК-кодов пультов ДУViews: 1161 Множество изготовителей для своих пультов дистанционного управления на ИК лучах используют принцип широтно-импульсной модуляции. В таких кодах бит единицы представляется импульсом большой длительности, а ноль импульсом короткой длительности. …
MPLAB® Code ConfiguratorViews: 1825 MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект.
ch-светомузыка от теории до реализацииViews: 950 Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического …
Game, exercise machine – Logic Gates.Views: 37 Game, exercise machine – Logic Gates. A game, a simulator, a gift – the development of logical thinking. The game is designed to develop logical thinking in children, …
Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PROViews: 553 Назвемо цей варіант поновлення для професіоналів і не тільки. Що нового? 1. Повністю змінено структуру параметрів бази даних компонента. Це дозволило повноцінної роботи Актив ВОМ. Ви відразу отримуєте …
JDY-62A Audio bluetooth moduleViews: 1908 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …