А вот интересно, проводил кто-нибудь снятие сигнатуры (осциллограммы) замыкания/дребезга кнопок на реальном спектруме?
p.s.
Это отличает кстати эмуль от реала :)
Вид для печати
А вот интересно, проводил кто-нибудь снятие сигнатуры (осциллограммы) замыкания/дребезга кнопок на реальном спектруме?
p.s.
Это отличает кстати эмуль от реала :)
а зачем это нужно?
для разных клав будут разные картинки... и на разных клонах тоже будут разные картинки...
в некоторых случаях не будет дребезга вообще, либо только при определенных условиях иногда будет проскакивать (типа скорость набора, сила нажатия и пр.)
так что для точного определения "эмуль или реал" это не подойдет.
ЗЫ: мало того, в эмуле можно ввести софтовых дребезг, хотя, "нафег надо?" ;)
дребезг он... как часто??? Если проверять порты раз эдак 1000 в секунду, то заметишь... а раз 50 в секунду дребезга то и не увидишь... И потом даже на реале, вот у меня стоит контроллер Камиля для клавы PS/2. У неё дребез остаётся внутри, до самого Speccy доходит только конкретное нажатие, что я стал эмуляторщиком от этого? ;-)
У меня была в свое врямя такая элитная клавиатура, что и при опросе 50 гц дребезжало. А герконовая в общем случае не дребезжит вовсе.
герконовая тоже дребезжит
Дребезг это преждевременное послевременное срабатывание до/после нажатия. Возникает вследствие 1) залипания 2) тока, который образуется вследствие дуги между контактами
и то и другое можно уменьшить но убрать совсем нет. Дребезг есть всегда, вопрос в его величине...
ну ты и фигню сказал.. ..дребезг, вследствии залипания - эт что-то попсовое, где эт ты такое видел? ..а дуга - эт вааще!! :) ..ты там чё в клаве индуктивности на единицы генри коммутируешь? :) ..попсовая у тя наверно клава.. стимпанковская какая-то наверно.. фотку брось этого чуда.. желательно чтоб дуговые разряды между клавиш было вино.. :)
Учи матчасть.
Даю наводку. Запускаешь какой нить интернет-браузер. Набираешь строку запуска "google.ru" набираешь "электроконтактные преобразователи" и ищешь с какими проблемами сталкиваются их создатели.
Добавлено через 1 минуту
Ага вот ещё. Попробуй сними закрывающий корпус какого нить переключателя на 220 вольт. Обеспечь темноту и попробуй им щёлкнуть. Разрешаю наблюдать искру :-D
:) Валера, создатели клавиатур ни с какими такими проблемами не сталкиваются :) , если конечно у них клавы не на паровой тяге.. :)
..и всё же дал бы сцылочку на эту замечательную стимпанковскую клаву, работающую судя по всему от 3х фазной сети 380V :) ..
Black_Cat, даже при малых напряжениях при определенном зазоре между контактами происходит пробой диэлектрика (воздуха), так как в клавиатуре зазор постоянно меняется, то довольно часто появляется "нужный" для пробоя зазор.
На самом деле реально происходит "блым" перед переходом из состояния в состояние (нажато/не нажато и наоборот).
Поэкспериментируй на реальном железе с любыми кнопками ;)
Напряжение пробоя воздуха 2 кВ/мм. Эт какие должны быть зазоры, чтоб при напряжении 3,5В (типовое напряжение логической "1") возникал пробой? :)
Не будет ничего. Не надо заниматься шаманством. Дуга в выключателе 220В имеет совсем другую природу и вызывается изменением тока в индуктивной нагрузке, поэтому я сразу и спросил что это за клава должна быть такая, в которой клавишами коммутируются индуктивности в единицы генри?
Посчитай! ;) Или ты хочешь сказать, что зазор в микроны невозможен в принципе?
Т.е. ты хочешь сказать, что все разработчики железа занимаются шаманством... Ну, может быть ты и прав. Странно другое: почему-то процедуры написанные "в лоб" без многократного подтверждения установки/снятия бита работают криво, в том смысле, что опрос происходит нечетко, например при однократном нажатии происходит многократный запуск обработчика события, что допустим приводит к переходу по меню не на один пункт, а на несколько...
не сдержусь и я ;) на самом деле искра есть-наблюдал в темноте сам.
от дребезга борются 2-мя способами:
1) аппаратно - антидребезговая схема на триггерах
2) программно - опрос клавиш через время, большее чем время дребезга
Добавлено через 1 минуту
P.S. а в ARM7,9 есть встроенные антидребезговые схемы на потрах (Glitch Filter)
в моем так и не зарелиженном мегатестере есть тест на дребезг кнопок. делал я его как раз для того, чтоб проверять клавиатуры, ибо у самого была такая клавиатура, что некоторые проги просто бесились от дребезга (из-за него, кстати, комп очень часто вис). после замены клавиатуры дребезг пропал, все стало работать как должно и не висло:)
Я выразился в начале неточно.
Думал что широко осмыслите именно выражение лежащие в названии самой темы.
Я к тому, что дребезг механических кнопок - малоисследованная тема на спектруме и мало кто из спектрумистов работал над ней. А вдруг что-то да получится?
Про эмулятор/реал я написал только для того, чтобы показать, что дребезгу можно найти "практическое" применение - это как бы "отпечаток" конкретного компа. Поймите меня правильно - я ничего не хочу, кроме как дать "пищу для размышлений". Творческий импет...
Ну к примеру. Демо/игра вполне может шутки ради написать "вы используете клавиатуру на герконах". Просто забавно...
Когда-то в 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 это элементарные наводки , провода работают как антенна.
Проблема та же , природа другая...