Black_Cat, даже при малых напряжениях при определенном зазоре между контактами происходит пробой диэлектрика (воздуха), так как в клавиатуре зазор постоянно меняется, то довольно часто появляется "нужный" для пробоя зазор.
На самом деле реально происходит "блым" перед переходом из состояния в состояние (нажато/не нажато и наоборот).
Поэкспериментируй на реальном железе с любыми кнопками
Напряжение пробоя воздуха 2 кВ/мм. Эт какие должны быть зазоры, чтоб при напряжении 3,5В (типовое напряжение логической "1") возникал пробой?
Не будет ничего. Не надо заниматься шаманством. Дуга в выключателе 220В имеет совсем другую природу и вызывается изменением тока в индуктивной нагрузке, поэтому я сразу и спросил что это за клава должна быть такая, в которой клавишами коммутируются индуктивности в единицы генри?
Последний раз редактировалось Black_Cat; 05.12.2007 в 15:54.
Посчитай! Или ты хочешь сказать, что зазор в микроны невозможен в принципе?
Т.е. ты хочешь сказать, что все разработчики железа занимаются шаманством... Ну, может быть ты и прав. Странно другое: почему-то процедуры написанные "в лоб" без многократного подтверждения установки/снятия бита работают криво, в том смысле, что опрос происходит нечетко, например при однократном нажатии происходит многократный запуск обработчика события, что допустим приводит к переходу по меню не на один пункт, а на несколько...
не сдержусь и я на самом деле искра есть-наблюдал в темноте сам.
от дребезга борются 2-мя способами:
1) аппаратно - антидребезговая схема на триггерах
2) программно - опрос клавиш через время, большее чем время дребезга
Добавлено через 1 минуту
P.S. а в ARM7,9 есть встроенные антидребезговые схемы на потрах (Glitch Filter)
Последний раз редактировалось Romanich; 06.12.2007 в 07:28. Причина: Добавлено сообщение
EMU Apparatchik Romanich
http://emu-apparatchik.narod.ru
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
в моем так и не зарелиженном мегатестере есть тест на дребезг кнопок. делал я его как раз для того, чтоб проверять клавиатуры, ибо у самого была такая клавиатура, что некоторые проги просто бесились от дребезга (из-за него, кстати, комп очень часто вис). после замены клавиатуры дребезг пропал, все стало работать как должно и не висло
Я выразился в начале неточно.
Думал что широко осмыслите именно выражение лежащие в названии самой темы.
Я к тому, что дребезг механических кнопок - малоисследованная тема на спектруме и мало кто из спектрумистов работал над ней. А вдруг что-то да получится?
Про эмулятор/реал я написал только для того, чтобы показать, что дребезгу можно найти "практическое" применение - это как бы "отпечаток" конкретного компа. Поймите меня правильно - я ничего не хочу, кроме как дать "пищу для размышлений". Творческий импет...
Ну к примеру. Демо/игра вполне может шутки ради написать "вы используете клавиатуру на герконах". Просто забавно...
Последний раз редактировалось Raider; 03.01.2008 в 01:06.
Alex Raider, Flash inc. 1992-1997 Новосибирск
Когда-то в 1996-ом году я делал текстовый редактор с возможностью набирать текст с разной шириной символов в фонте. Ну и, конечно же, столкнулся с опросом клавиатуры. Моя любимая поза программирования за Secc'ом это кресло на расстоянии двух метров от телевизора "Берёзка-206", ну и как вы понимаете кабель к клавиатуре был два метра !!! Как-то так получалось, что в те времена я практически не играл в игры и не замечал проблем с дребезгом. 99% пользования программ это был:
TASM 4.0
Commander (блин забыл ... чёрт побери эту жизнь ради оплаты жини)
Text Editor (тот самы - мой)
Всё это юзает RST 56 и не имеет проблем с дребезгом. Но потом я заметил, что как-то глючат некоторые игрушки. И при создании редактора я детально изучил что к чему. Дребезг на моей герконовой клавиатуре начинался примерно с 1 метра длины шнура. При нажатой клавиши первые 2-3 кадра cpeccy, еденичка в нолик на порте клавиатуры переходит прямо таки сказать с трудом. И пришлось делать программу анти дребезга. Но сам алгоритм прост:
1. Поймал 0, запускаешь счётчик эдак на 10-20 прерываний
2. Поймал 1, отнял одыничку из счётчика, если счтчик в нулях, значит клавиша не нажата.
Быстрее чем раз за 10 интов мало кто нажмёт клавишу, а хоть раз, но 0 проскочит ... Так и получается - просто ...
Добавлено через 9 минут
Кстаи, хочу добваить, что в моём Speccy, на шину к клавиатуре выдавалась вся пачка IN'ов происходящих на процессоре ... Мусорник просто жасный !!! И это в фирменном Speccy !!! Сейчас я на клавиатуру посавил контроллер, который по двум проводам передаёт все стсояние клавиш, на самом speccy стоит такой же контроллер, который всё это приимает дешифрует и эмулирует непосредственно для Z80-ого. Удобно и длина кабеля на клаву уже может быть около 20-т метров !!! Мне хватает трёх !!! Кстати, наконецто я избавился от бреда с нажатием лишним клавиш. Ну типа зажимаешь "6734" а по настоящему зажимаются "673458" ...
Последний раз редактировалось Robus; 10.01.2008 в 13:40. Причина: Добавлено сообщение
AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.
Дребезг контактов обусловлен сопротивлением самих котактов и временем срабатывания кнопки\выключателя .
Выражаясь просто это аналоговый шум , возникающий во время фронта\ спада ,
неимеющий ничего общего с дугой\пробоем диэлектрика.
А в случае у Robus это элементарные наводки , провода работают как антенна.
Проблема та же , природа другая...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)