Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
25.03.2012, 08:32
|
|
Прописка
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Godzilla82
|
Зачем ждать, когда закончится дребезг? Состояние кнопки просто так не меняется.
Состояние меняется только тогда, когда её нажали. А раз нажали - сразу нужно выполнить действия.
Здесь предполагается, что "действия" - значительно меньше 100 мс.
После выполнения действий нельзя сразу же делать проверку состояния кнопки. Так как там ещё может не закончился дребезг. Поэтому ждём 100 мс. Через 100 мс дребезг гарантированно закончится.
А далее можно снова проверять кнопку. Но если нам надо на одно нажатие кнопки однократно выполнить действия, нам нужно подождать, когда кнопку отпустят.
После отпускания можно ещё сделать задержку на дребезг.
|
Состояние не меняется, но могут быть помехи по порту кнопки, да и просто кнопка может "искрить" так, что непонятно - то ли её нажали, то ли недожали... Суть антидребезга - в том, чтобы уловить момент стабильного нажатия (когда состояние не меняется) в течении определённого времени.
__________________
Канал в Telegram об МК AVR @EasyAVR
|
|
|
|
25.03.2012, 08:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Prime
|
Не забывайте, что регистр PORT вы читать не можете, а только выводить в него!!!
|
Учите матчасть.
Сообщение от Prime
|
Состояние не меняется, но могут быть помехи по порту кнопки, да и просто кнопка может "искрить" так, что непонятно - то ли её нажали, то ли недожали... Суть антидребезга - в том, чтобы уловить момент стабильного нажатия (когда состояние не меняется) в течении определённого времени.
|
Нет уж. Если состояние изменилось - значит её нажали. Помехи тут не причём. Это отдельная тема. Не зачем решать надуманные задачи. Нам нужно устранить дребезг, а не избавляться от несуществующих помех.
|
|
|
|
25.03.2012, 08:56
|
|
Прописка
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Godzilla82
|
Учите матчасть.
Нет уж. Если состояние изменилось - значит её нажали. Помехи тут не причём. Это отдельная тема. Не зачем решать надуманные задачи. Нам нужно устранить дребезг, а не избавляться от несуществующих помех.
|
Ну зачем же вы так... Матчасть уже изучена, достаточно почитать даташит. А также многочисленные форумы.
Выкладка из даташита на ATmega8
"Independent of the setting of Data Direction bit DDxn, the port pin can be read through the PINxn Register Bit."
__________________
Канал в Telegram об МК AVR @EasyAVR
|
|
|
|
25.03.2012, 09:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Prime
|
Ну зачем же вы так... Матчасть уже изучена, достаточно почитать даташит. А также многочисленные форумы.
Выкладка из даташита на ATmega8
"Independent of the setting of Data Direction bit DDxn, the port pin can be read through the PINxn Register Bit."
|
И где тут сказано, что читать регистр PORTx нельзя?
Я вас, наверное, удивлю, но в новых тиньках даже писать в регистр PINx можно. При этом будет меняться состояние порта на противоположное. Бывает очень удобно в некоторых случаях.
P.S. Ложные знания хуже неведения
Последний раз редактировалось Godzilla82; 25.03.2012 в 09:06.
|
|
|
|
25.03.2012, 09:07
|
|
Прописка
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Godzilla82
|
Помехи тут не причём. Это отдельная тема. Не зачем решать надуманные задачи. Нам нужно устранить дребезг, а не избавляться от несуществующих помех.
|
В вашем варианте - вы даже не избавляетесь от дребезга, предполагая, что дребезг сам пройдёт, а мы тут пока что обработаем кнопку, считая, что её нажали. Представьте себе ситуацию - кнопку нажали, но контакт отработал только дребезг в течении 150 мс (ну такая кнопка вам попалась). Вы в течении 100 мс честно отработали нажатие, а что вы будете делать с оставшимися 50 мс дребезга? Правильно, по вашему алгоритму - вы посчитаете, что её еще раз нажали (если в момент считывания вы получили 0 на порту) либо отпустили (если в момент считывания вам попалась 1 на порту. Вот вам и неоднозначность вашего алгоритма.
__________________
Канал в Telegram об МК AVR @EasyAVR
|
|
|
|
25.03.2012, 09:08
|
|
Прописка
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: USB коннектор на AVR
__________________
Канал в Telegram об МК AVR @EasyAVR
|
|
|
|
25.03.2012, 09:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Prime
|
В вашем варианте - вы даже не избавляетесь от дребезга, предполагая, что дребезг сам пройдёт, а мы тут пока что обработаем кнопку, считая, что её нажали. Представьте себе ситуацию - кнопку нажали, но контакт отработал только дребезг в течении 150 мс (ну такая кнопка вам попалась).
|
Согласен. Обычно дребезг - не более 2-5 мс. А кнопки с дребезгом 150 мс надо выкидывать как неисправные. Не призываете же вы использовать неисправные детали в устройстве? А если у нас МК будет неисправным, и вместо сложения вычитать будет? Мы и это должны предусмотреть?
|
|
|
|
25.03.2012, 09:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Prime
|
Читать его можно... А то что вы получите не то состояние на входе, что на самом деле есть - это сто процентов ))
|
А мне не нужно получить состояние на входе. Мне нужно не изменить состояния на других ножках порта, которые используются для других целей.
|
|
|
|
25.03.2012, 09:15
|
|
Прописка
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Godzilla82
|
А мне не нужно получить состояние на входе. Мне нужно не изменить состояния на других ножках порта, которые используются для других целей.
|
Да что ж такое то!!!
Читая PORT, вы получите 0!!! А вам в вашей конструкции (гляньте на неё еще раз) - нужно получить текущее значение на физических ножках.
__________________
Канал в Telegram об МК AVR @EasyAVR
|
|
|
|
25.03.2012, 09:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: USB коннектор на AVR
Сообщение от Prime
|
Да что ж такое то!!!
Читая PORT, вы получите 0!!! А вам в вашей конструкции (гляньте на неё еще раз) - нужно получить текущее значение на физических ножках.
|
Да куда же вы смотрите-то? У нас задача:
поменять выходные сигналы (допустим, на 1 и 2 битах порта), не изменив состояния соседних пинов. Соседние пины у нас для других целей зарезервированы.
Поэтому мы читаем изначальное состония порта и от него уже и пляшем.
Вас, наверное, спутало, что у меня порт D - это выход, а порт B - это вход Внимательнее надо быть, я же писал об этом.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
usb джойстик на avr
|
bobrozub |
Микроконтроллеры, АЦП, память и т.д |
7 |
14.03.2012 20:24 |
USB клавиатура + AVR
|
Serdgo96 |
Микроконтроллеры, АЦП, память и т.д |
2 |
25.02.2010 22:55 |
USB Коннектор, разпиновка
|
nerozero |
Информация по радиокомпонентам |
2 |
05.10.2007 14:20 |
AVR...USB
|
Edd-Layer |
Микроконтроллеры, АЦП, память и т.д |
4 |
11.04.2007 21:37 |
Часовой пояс GMT +4, время: 08:33.
|
|