Давно наблюдаю уже такую вещь — нажимаю по порядку(не отпуская) несколько кнопок и после того, как уже нажато четыре-пять нажатие следующей не срабатывает. Проверяю в Пуск->Выполнить — нажимаю q,w,e,r а на t символы уже не вводятся.
Кто-нибудь знает очему так происходит и как с этим бороться?
Здравствуйте, Arsenicum, Вы писали:
A>Давно наблюдаю уже такую вещь — нажимаю по порядку(не отпуская) несколько кнопок и после того, как уже нажато четыре-пять нажатие следующей не срабатывает. Проверяю в Пуск->Выполнить — нажимаю q,w,e,r а на t символы уже не вводятся. A>Кто-нибудь знает очему так происходит и как с этим бороться?
Некоторые вводятся, y, например. Наверное, особенности работы контроллера клавиатуры. Фантомные клавиши, там, или ещё что-нибудь в этом роде.
Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте, Arsenicum, Вы писали:
A>>Давно наблюдаю уже такую вещь — нажимаю по порядку(не отпуская) несколько кнопок и после того, как уже нажато четыре-пять нажатие следующей не срабатывает. Проверяю в Пуск->Выполнить — нажимаю q,w,e,r а на t символы уже не вводятся. A>>Кто-нибудь знает очему так происходит и как с этим бороться?
MNZ>Некоторые вводятся, y, например. Наверное, особенности работы контроллера клавиатуры. Фантомные клавиши, там, или ещё что-нибудь в этом роде.
Ага, именно особенности.
Бороться — запрограммировать однокристалку и засунуть ее вместо родной.
Или хорошо поискать, возможно в сторону multimedia keyboards. Один раз в жизни (в далеком 199каком-то году) я такую видел.
Здравствуйте, Alter_, Вы писали:
MNZ>>Некоторые вводятся, y, например. Наверное, особенности работы контроллера клавиатуры. Фантомные клавиши, там, или ещё что-нибудь в этом роде.
Действительно начинаю верить в мистику
A_>Ага, именно особенности. A_>Бороться — запрограммировать однокристалку и засунуть ее вместо родной. A_>Или хорошо поискать, возможно в сторону multimedia keyboards. Один раз в жизни (в далеком 199каком-то году) я такую видел.
Что за ммклавиатуры? Слышал уже что-то про них... Это не те, которые через USB с 20 дополнительными кнопоками на винампы, оутлуки?
Я думаю что дело в дровах Виндов, имхо даже DirectInput не спасает — в играх глюки те же. На этой же машине под чистым ДОСом я писал прогу, которая напрямую работает с контроллером. Там у меня хоть всю клаву вдави — все срабатывало. Нажал кнопки — приходит из порта байт с старшим битом 1, отпускаешь — тот же байт, только старший бит установлен в 0.
Здравствуйте, Arsenicum, Вы писали:
A>Я думаю что дело в дровах Виндов, имхо даже DirectInput не спасает — в играх глюки те же.
Может быть. Слишком медленно считываются scan-коды из аппаратного буфера. Кстати, его емкость как раз 4 кода. (Буфер клавиатуры из области данных BIOS — нечто другое).
A>...На этой же машине под чистым ДОСом я писал прогу, которая напрямую работает с контроллером. Там у меня хоть всю клаву вдави — все срабатывало. Нажал кнопки — приходит из порта байт с старшим битом 1, отпускаешь — тот же байт, только старший бит установлен в 0.
И, AFAIK, старший бит приходит установленным как раз при отпускании клависи.
Здравствуйте, SunChess, Вы писали:
SC>Есть мнение, что аппаратура не причем — в ней же контроллер прост до идиотизма — SC>при печати платы станку просто негде ошибаться.
Я и не говорил, что аппаратура причем. Хотя про аппаратный буфер — это я немного перебрал. Ввод тормозит, конечно, уровнем повыше.
И все-таки из-за слишком медленной обработки. Тормозит диалоговое окно "Run". Это вообще может быть глюк EditText-а.
... P>Может быть. Слишком медленно считываются scan-коды из аппаратного буфера.
Как можно медленно считать скан код?? Имхо такое возможно только если ОСь очень сильно повисла = умерла.
... P>Кстати, его емкость как раз 4 кода. (Буфер клавиатуры из области данных BIOS — нечто другое).
Я не говорил ничего про буферы. Имеется ввиду контроллер клавиатуры и работа с ним через порты ввода-вывода. То есть на процессор приходит IRQ1 и его обработчик читает скан-код из порта.
... P>И, AFAIK, старший бит приходит установленным как раз при отпускании клависи.
Спасибо что поправили. Глянул в справочник — так и есть.
Здравствуйте, Arsenicum, Вы писали:
A>Как можно медленно считать скан код?? Имхо такое возможно только если ОСь очень сильно повисла = умерла.
Понятно, что команда in al, 60h выполняется быстро. Но драйвер клавиатуры, возможно, не успевает завершить обработку нажатия клавиши до прихода следующего. Слишком мал интервал между нажатиями. Пока ОСь превратит scan-код в сообщение, пока поставит в очередь — это довольно долгая песня.
Иногда, правда, включается автоповтор последней нажатой клавиши. Кстати, со встроенным в BIOS обработчиком IRQ1 такой эффект не наблюдался мной ни разу.
A>Я не говорил ничего про буферы. Имеется ввиду контроллер клавиатуры и работа с ним через порты ввода-вывода. То есть на процессор приходит IRQ1 и его обработчик читает скан-код из порта.
Дак я же не с замечаниями к вам полез с этим буфером клавиатуры. Это, скорее, заметки на полях.
A>Спасибо что поправили. Глянул в справочник — так и есть.
Здравствуйте, Arsenicum, Вы писали:
A>Если кто-нибудь писал драйвера на клавиатуру или около того, то напишите пожалуйста об этом. Спасибо за внимание.
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, Arsenicum, Вы писали:
A>>Если кто-нибудь писал драйвера на клавиатуру или около того, то напишите пожалуйста об этом. Спасибо за внимание.
P>Давным-давно для MSDOS делал...
Конечно же надо было сказать что драйвер под Win32 С MS-DOS'ом и я баловался.
Здравствуйте, Privalov, Вы писали:
A>>Как можно медленно считать скан код?? :???: Имхо такое возможно только если ОСь очень сильно повисла = умерла.
P>Понятно, что команда in al, 60h выполняется быстро. Но драйвер клавиатуры, возможно, не успевает завершить обработку нажатия клавиши до прихода следующего. Слишком мал интервал между нажатиями. Пока ОСь превратит scan-код в сообщение, пока поставит в очередь — это довольно долгая песня.
Ну, скорость здесь не при чём. Я могу лупить по клавишам со страшной скоростью — и всё будет печататься.
А вот больше 4 клавиш одновременно нажать — уже не выйдет.
По-видимости, это драйвер сознательно ограждает виндоуз от паданья лицом на клавиатуру. Если нажато более 4 букв — отдыхает.
Кстати, очень простая проверка этого факта: adagio, 4/4,
нажимаем (и не отпускаем) q,w,e,r — выводится текст qwer
нажимаем t,y,u — ничего не выводится
отпускаем q
отпускаем w
отпускаем e
отпускаем r — сейчас зажаты t,y,u — выводит tyuuuuuuuuuuuuuuuuuuuuu.
Перекуём баги на фичи!
Re[8]: Клавиатура
От:
Аноним
Дата:
29.04.05 17:10
Оценка:
К>Кстати, очень простая проверка этого факта: adagio, 4/4, К>нажимаем (и не отпускаем) q,w,e,r — выводится текст qwer К>нажимаем t,y,u — ничего не выводится К>отпускаем q К>отпускаем w К>отпускаем e К>отпускаем r — сейчас зажаты t,y,u — выводит tyuuuuuuuuuuuuuuuuuuuuu.
бывает веселее — t глотается, и y тоже (зажал qwertyui)
Здравствуйте, Arsenicum, Вы писали:
A>Давно наблюдаю уже такую вещь — нажимаю по порядку(не отпуская) несколько кнопок и после того, как уже нажато четыре-пять нажатие следующей не срабатывает. Проверяю в Пуск->Выполнить — нажимаю q,w,e,r а на t символы уже не вводятся. A>Кто-нибудь знает очему так происходит и как с этим бороться?
Меня эта багофича дико бесит во время игры в quake. Фишка еще и в том, что иногда в таких случаях блокируются также события мыши, и получается, что вместо одновременно стрейф влево + назад + смена оружия + смена режима нажатия клавиш + разворот на 90 градусов вправо + выстрел получается что-то без одного-двух действий(смотря, что нажмешь последним). Сколько раз так в стенку вплотную с ракетницы попадал. Эх....
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Privalov, Вы писали:
A>>>Как можно медленно считать скан код?? Имхо такое возможно только если ОСь очень сильно повисла = умерла.
P>>Понятно, что команда in al, 60h выполняется быстро. Но драйвер клавиатуры, возможно, не успевает завершить обработку нажатия клавиши до прихода следующего. Слишком мал интервал между нажатиями. Пока ОСь превратит scan-код в сообщение, пока поставит в очередь — это довольно долгая песня.
К>Ну, скорость здесь не при чём. Я могу лупить по клавишам со страшной скоростью — и всё будет печататься. К>А вот больше 4 клавиш одновременно нажать — уже не выйдет. К>По-видимости, это драйвер сознательно ограждает виндоуз от паданья лицом на клавиатуру. Если нажато более 4 букв — отдыхает.
К>Кстати, очень простая проверка этого факта: adagio, 4/4, К>нажимаем (и не отпускаем) q,w,e,r — выводится текст qwer К>нажимаем t,y,u — ничего не выводится К>отпускаем q К>отпускаем w К>отпускаем e К>отпускаем r — сейчас зажаты t,y,u — выводит tyuuuuuuuuuuuuuuuuuuuuu.
Похоже на правду.
Повбывав бы тех, кто это придумал . Зато я теперь знаю, кого матюкать, когда в quake режусь!
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.