Цитата Сообщение от krotan Посмотреть сообщение
Ты ищешь проблему там, где её вообще нет. Контроллер прекрасно успевает работать с PS/2 клавиатурой без каких-либо прерываний, по опросу. А вот с портом Спека не успевает, поэтому на нём и прерывание.
Объясните мне пожалуйста, почему тогда при тактовой частоте до 16 МГц включительно клавиатура и микроконтроллер общаются адекватно, а при бОльшей частоте они уже друг друга не видят?
Пытайся, может станешь программистом.
Это не мой хлеб, но мне интересно это занятие.

В общем провел я эксперимент, как и планировал. Закатал ATMega168PA на плату и поставил кварц 25 МГц. Биты конфигурации выставил на внешнее тактирование и разрешил выход тактового сигнала на порт CLKO (РВ0). После подачи питания частотомер показал на этом выводе частоту в 25 МГц. Причем стабильную частоту, без скачков и провалов. Это стало доказательством, что МК дружит с кварцем на этой частоте. Проши прошивку KBD13_M168P_nw_MODIFIEDv5_5_25MHz.hex.
Результат отрицательный. Клавиатура не дружит с МК, Снизил тактовую до 8 МГц, клавиатура и МК заработали на этой частоте. Воспользовался случаем и проверил с какой частотой идет тактирование порта CLK клавиатуры. Всего 137 Гц. Что-то маловато. По вики там частота 10-16 кГц должна быть.

В общем делаю выводы из своего эксперимента. Прошивка не работает, где-то в ней ошибка.

К выше сказанному добавлю еще один глупый вопрос. А почему контроллер должен срабатывать по спадающему фронту /RDFE? Z80 в этот же момент будет считывать код нажатой клавиши или код только защелкнется в буфере и считается на следующем такте?