2015-03-15 4 views
0

При обработке прерывания клавиатуры вы сохраняете полученный символ где-то. Этот символ всегда печатается на экране? Если нет: откуда вы знаете, когда вам нужно писать экран?Является ли символ, полученный прерыванием клавиатуры, всегда печатается на экране?

+2

Наверняка вы набрали пароль раньше? –

ответ

2

Прерывание клавиатуры практически никогда не будет эхо-символа на экране.
Но функция ОС, которая доставляет символы в приложение, может отображать такой символ на экране.

+0

Итак, задача программы - прочитать символы, хранящиеся в буфере данных клавиатуры, и распечатать их на экране? – gilianzz

+1

Некоторые функции ОС сделают это для вас. Очевидно, что всегда можно вручную читать из буфера данных клавиатуры и печатать на экране. –

0

При обработке прерывания клавиатуры вы сохраняете полученный символ в буфере (размер может быть только 1 байт или содержать несколько штрихов), а также количество символов в буфер. Простейшая форма - это один ключевой штрих и флаг. Обработчик прерываний сохраняет значение ключа в буфере и устанавливает флаг. Ваш «основной цикл» или вызов обработки ввода (независимо) видит флаг, собирает данные об ударе ключа, а затем очищает флаг.

Не смешивайте два разных устройства в одном и том же устройстве.

+0

Но когда данные получены, как программа знает, когда писать их на экран? – gilianzz

+0

Потому что вы пишете программу таким образом, и вы пишете на экране, когда хотите это сделать. Возможно, вы читаете клавиатуру по разным причинам в разных местах и ​​не всегда можете * хотеть * клавишу, которая будет отображаться. Обработчик прерываний - это клавиатурный читатель - ничего другого. Вы предоставляете интерфейс (как я описал) вашей основной программе. Затем, когда вы меняете тип клавиатуры, вам не нужно переписывать, как она используется в программе: у вас есть драйвер. –

Смежные вопросы