|
23.02.2013, 12:32 | #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 |
23.02.2013, 13:32 | #2 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Дребез контактов аппаратно - кондерами устранялся? В программе устранения дребезга. Надо понимать, что это не законченная вещь - придет железо - буду уже отлаживать, а вот насчет изменения переменной Dimmer1 посмотрю еще раз
|
23.02.2013, 13:49 | #3 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 |
Цитата:
|
|
24.02.2013, 11:21 | #4 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
после праздников займусь проверкой программки, пока одну ошибочку нашел вот тут
PHP код:
|
24.02.2013, 23:14 | #5 |
Junior Member
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0 |
кондеры не помогают,
Добавьте пожалуйста программное устранение дребезга |
25.02.2013, 07:56 | #6 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Я так понимаю нужно просто установить задержку по времени между срабатываниями, delay в прерывании не работает - сделать просто цикл? Это вопрос к людям.
А к vadymkyr - сколько по времени у тебя длится дребезг -какая кнопка -можешь измерить? |
25.02.2013, 21:47 | #7 |
Junior Member
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0 |
|
25.02.2013, 23:04 | #8 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 |
Можно использовать встроенную библиотеку #include <util/delay.h>
Она не использует таймер |
26.02.2013, 08:00 | #9 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Это хорошо, только вот что-то у меня в Arduino 1.0 её нет. Попробую найти. А в целом просто её подключаем и в обработчике прерывания по PCINT первым делом ставим задержку типа delay_ms(20)( а у нас лампочка в это время не погаснет - ведь прерывания по таймеры тож не будут обрабатываться? А 20 не мало -видимо это надо подпирать эксперементальным путем приминительно к кнопке) а потом уже анализируем состояние портов
|
26.02.2013, 10:07 | #10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 |
Я обычно использую задержку от 10мс до 30мс
Можно так же использовать обычный delay() Только при входе в обработчик нужно отключить прерывание по входу, а при выходе из обработчика снова включить |
Здесь присутствуют: 139 (пользователей: 0 , гостей: 139) | |
|
|