Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.03.2012, 08:32  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
Зачем ждать, когда закончится дребезг? Состояние кнопки просто так не меняется.
Состояние меняется только тогда, когда её нажали. А раз нажали - сразу нужно выполнить действия.

Здесь предполагается, что "действия" - значительно меньше 100 мс.

После выполнения действий нельзя сразу же делать проверку состояния кнопки. Так как там ещё может не закончился дребезг. Поэтому ждём 100 мс. Через 100 мс дребезг гарантированно закончится.

А далее можно снова проверять кнопку. Но если нам надо на одно нажатие кнопки однократно выполнить действия, нам нужно подождать, когда кнопку отпустят.

После отпускания можно ещё сделать задержку на дребезг.
Состояние не меняется, но могут быть помехи по порту кнопки, да и просто кнопка может "искрить" так, что непонятно - то ли её нажали, то ли недожали... Суть антидребезга - в том, чтобы уловить момент стабильного нажатия (когда состояние не меняется) в течении определённого времени.
Реклама:
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 25.03.2012, 08:47  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
Не забывайте, что регистр PORT вы читать не можете, а только выводить в него!!!
Учите матчасть.

Сообщение от Prime Посмотреть сообщение
Состояние не меняется, но могут быть помехи по порту кнопки, да и просто кнопка может "искрить" так, что непонятно - то ли её нажали, то ли недожали... Суть антидребезга - в том, чтобы уловить момент стабильного нажатия (когда состояние не меняется) в течении определённого времени.
Нет уж. Если состояние изменилось - значит её нажали. Помехи тут не причём. Это отдельная тема. Не зачем решать надуманные задачи. Нам нужно устранить дребезг, а не избавляться от несуществующих помех.
Godzilla82 вне форума  
Непрочитано 25.03.2012, 08:56  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию 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
Prime вне форума  
Непрочитано 25.03.2012, 09:04  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение 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.
Godzilla82 вне форума  
Непрочитано 25.03.2012, 09:07  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
Помехи тут не причём. Это отдельная тема. Не зачем решать надуманные задачи. Нам нужно устранить дребезг, а не избавляться от несуществующих помех.
В вашем варианте - вы даже не избавляетесь от дребезга, предполагая, что дребезг сам пройдёт, а мы тут пока что обработаем кнопку, считая, что её нажали. Представьте себе ситуацию - кнопку нажали, но контакт отработал только дребезг в течении 150 мс (ну такая кнопка вам попалась). Вы в течении 100 мс честно отработали нажатие, а что вы будете делать с оставшимися 50 мс дребезга? Правильно, по вашему алгоритму - вы посчитаете, что её еще раз нажали (если в момент считывания вы получили 0 на порту) либо отпустили (если в момент считывания вам попалась 1 на порту. Вот вам и неоднозначность вашего алгоритма.
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 25.03.2012, 09:08  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
И где тут сказано, что читать регистр PORTx нельзя?

Я вас, наверное, удивлю, но в новых тиньках даже писать в регистр PINx можно. При этом будет меняться состояние порта на противоположное. Бывает очень удобно в некоторых случаях.

P.S. Ложные знания хуже неведения
Читать его можно... А то что вы получите не то состояние на входе, что на самом деле есть - это сто процентов ))
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 25.03.2012, 09:10  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Смех Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
В вашем варианте - вы даже не избавляетесь от дребезга, предполагая, что дребезг сам пройдёт, а мы тут пока что обработаем кнопку, считая, что её нажали. Представьте себе ситуацию - кнопку нажали, но контакт отработал только дребезг в течении 150 мс (ну такая кнопка вам попалась).
Согласен. Обычно дребезг - не более 2-5 мс. А кнопки с дребезгом 150 мс надо выкидывать как неисправные. Не призываете же вы использовать неисправные детали в устройстве? А если у нас МК будет неисправным, и вместо сложения вычитать будет? Мы и это должны предусмотреть?
Godzilla82 вне форума  
Непрочитано 25.03.2012, 09:12  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
Читать его можно... А то что вы получите не то состояние на входе, что на самом деле есть - это сто процентов ))
А мне не нужно получить состояние на входе. Мне нужно не изменить состояния на других ножках порта, которые используются для других целей.
Godzilla82 вне форума  
Непрочитано 25.03.2012, 09:15  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
А мне не нужно получить состояние на входе. Мне нужно не изменить состояния на других ножках порта, которые используются для других целей.
Да что ж такое то!!!
Читая PORT, вы получите 0!!! А вам в вашей конструкции (гляньте на неё еще раз) - нужно получить текущее значение на физических ножках.
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 25.03.2012, 09:19  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
Да что ж такое то!!!
Читая PORT, вы получите 0!!! А вам в вашей конструкции (гляньте на неё еще раз) - нужно получить текущее значение на физических ножках.
Да куда же вы смотрите-то? У нас задача:
поменять выходные сигналы (допустим, на 1 и 2 битах порта), не изменив состояния соседних пинов. Соседние пины у нас для других целей зарезервированы.
Поэтому мы читаем изначальное состония порта и от него уже и пляшем.

Вас, наверное, спутало, что у меня порт D - это выход, а порт B - это вход Внимательнее надо быть, я же писал об этом.
Godzilla82 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot