![]() |
|
![]() |
#1 |
Junior Member
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0 ![]() |
![]()
работает только включение и выключение. и еще, такое впечатления, что присудствует дребезг контактов
Код:
long press 1 click long press 1 click long press long press 1 click 1 click + long press 1 click long press 1 click 1 click + long press 1 click long press 1 click 3 click 1 click 1 click + long press |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Дребез контактов аппаратно - кондерами устранялся? В программе устранения дребезга. Надо понимать, что это не законченная вещь - придет железо - буду уже отлаживать, а вот насчет изменения переменной Dimmer1 посмотрю еще раз
|
![]() |
![]() |
![]() |
#3 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
после праздников займусь проверкой программки, пока одну ошибочку нашел вот тут
PHP код:
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0 ![]() |
![]()
кондеры не помогают,
Добавьте пожалуйста программное устранение дребезга |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я так понимаю нужно просто установить задержку по времени между срабатываниями, delay в прерывании не работает - сделать просто цикл? Это вопрос к людям.
А к vadymkyr - сколько по времени у тебя длится дребезг -какая кнопка -можешь измерить? |
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#8 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Можно использовать встроенную библиотеку #include <util/delay.h>
Она не использует таймер |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Это хорошо, только вот что-то у меня в Arduino 1.0 её нет. Попробую найти. А в целом просто её подключаем и в обработчике прерывания по PCINT первым делом ставим задержку типа delay_ms(20)( а у нас лампочка в это время не погаснет - ведь прерывания по таймеры тож не будут обрабатываться? А 20 не мало -видимо это надо подпирать эксперементальным путем приминительно к кнопке) а потом уже анализируем состояние портов
|
![]() |
![]() |
![]() |
#10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я обычно использую задержку от 10мс до 30мс
Можно так же использовать обычный delay() Только при входе в обработчик нужно отключить прерывание по входу, а при выходе из обработчика снова включить |
![]() |
![]() |
![]() |
Здесь присутствуют: 122 (пользователей: 0 , гостей: 122) | |
|
|