На 8031 длительность WAIT гораздо больше. Можно сделать вообще без задержки, но не за 250р :) (например матрица из регистров и сумматоры упакованные в альтеру).Цитата:
Сообщение от Prusak
На 8031 длительность WAIT гораздо больше. Можно сделать вообще без задержки, но не за 250р :) (например матрица из регистров и сумматоры упакованные в альтеру).Цитата:
Сообщение от Prusak
Насколько мне известно, торможение при использовании клавиатуры связано с особенностями опроса самой клавиатуры в программе. При нормально сделанном опросе все работает без "тормозов".
Я тут собрал для эксперимента контроллер клавиатуры от ATM TurboЦитата:
Сообщение от Prusak
тоже на 80С31 (1816ВЕ31), правда я использовал AT89C52,
но это не меняет дела - одно семейство MSC51.
Померил длительность WAIT при тактовой частоте 11.0592 МГц (в мксек).
Вот результаты: Клавиша не нажата/Клавиша нажата
Прошивка XT (версия 1.06): 50/130
Прошивка AT (версия 2.2): 36/58
Контроллер на AT90S2313: 0/3
А реально при эксплуатации было замечено "подвисание" или "торможение" программ?Цитата:
Сообщение от caro
Нет не замечал.Цитата:
Сообщение от Prusak
Действительно, как ты заметил, торможение возникает при
интенсивном опросе порта клавиатуры.
Если сделать опрос по прерываниям, торможение не будет так заметно
даже с контроллерами на MSC51.
Задержка, зависит от того за сколько тактов успеет посчитать и выдать нужный результат контроллер... От типа и скорости АТ клавиатуры никак не зависит.Цитата:
Сообщение от Prusak
Дело в том что результат зависит от того какие линии механической клавиатуры спека сканируются, поэтому результат нужно вычислять. Результат можно вычислить заранее и держать ввиде таблицы - тогда задержка равна только выдачи из таблицы нужного значения. А если клавиши не нажаты, то можно аппаратно флаг выставить (на ножку контроллера), чтобы в этом случае WAIT не выдавался. Кажется так и сделано у Камиля :) .
Да видимо если обработчик клавы сидит в прерывании, то скорость обработки не сильно влияется на программу.
Тогда должно подтормаживать на любой программе, а в реальности это наблюдается только на некоторых программах.Цитата:
Сообщение от CHRV
Извините немножко некорректно ответил, потом поправил :smile: .Цитата:
Сообщение от Prusak
Надеюсь из моего ответа теперь все понятно :wink: .
Вопросы по схеме:
1) Сигнал /PFE - это выборка порта #FE с активным низким уровнем?
2) Сигнал /RESET - выходной, эмулирует сброс по Ctrl+Alt+Del?
3) Может быть имеет смысл сделать возможность сброса самого контроллера на случай подвисания оного (теоретически такая вероятность может быть) заведением кнопки на вывод 1 (-RES) микрокотроллера с одной стороны и на общий провод с другой?
Да.Цитата:
Сообщение от Prusak
Не стал я городить такую логику.Цитата:
Сообщение от Prusak
/RESET длительностью 10 мс. выдается при нажатии на Print Screen.
Может :) Только тогда и в IBM-ской клавиатуре надо поставить кнопку Сброса,Цитата:
Сообщение от Prusak
она тоже сделана на микроконтроллере и тоже может "теоретически" зависнуть :) .