Автор Тема: Программирование ps/2 клавиатуры и пищалки для AVR  (Прочитано 10993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

pumpkin

  • Модератор Раздела
  • Профи
  • *
  • Сообщений: 240
  • Карма: 2
  • Пол: Мужской
  • Это Я :-)
    • Просмотр профиля
Перед вызовом Getatkbd() активируешь таймер, который вырубит его, если тот не успеет отработать в отведенный ему для этого интервал времени?

Andy

  • Администратор Форумa
  • Эксперт
  • *
  • Сообщений: 1769
  • Карма: 15
  • Пол: Мужской
  • Нельзя отремонтировать то, что не сломано...
    • minilabmaster
    • Просмотр профиля
    • Форум "Минилаб-Мастер"
Совершенно верно. И все это делается уже в прерывании. Многие мануалы говорят, что так нельзя делать, но если очень хочется... Все отлично работает.

И если быть до конца точным, таемер функцию не вырубит, а поставит флаг, по которому функция отключится, скорее всего в ней есть цикл проверки этого флага.
« Последнее редактирование: 27 Май 2012, 08:09:12 от admin »
Заклинило деталь - надави на нее, если она сломалась - ничего, ее все равно надо было менять.

pumpkin

  • Модератор Раздела
  • Профи
  • *
  • Сообщений: 240
  • Карма: 2
  • Пол: Мужской
  • Это Я :-)
    • Просмотр профиля
Правильно сделал. Завершаешь Getatkbd совершенно корректно.

А обработчик прерывания - это просто процедура, и ничто, в принципе, не должно мешать срабатыванию в нем других прерываний. Надо просто за стэком-регистрами следить.
« Последнее редактирование: 27 Май 2012, 13:09:35 от pumpkin »

Форум проекта "Минилаб-Мастер"