Ответ: ну, например, так (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено vi 26 февраля 2004 г. 00:15
В ответ на: Опрос клавиатуры по прерываниям. отправлено =Tim= 25 февраля 2004 г. 23:32


volatile unsigned char KeyPad;

/* Key definitions */
#define KEY_RIGHT 1
#define KEY_LEFT 2
#define KEY_DOWN 4
#define KEY_UP 8
#define KEY_STOP 16
#define KEY_START 32

#define is_KeyPressed(key,kbd) ((key)&(kbd))

void waitKeyRelease(char key) {
while (key & KeyPad) {;}
}

void main ()
{
//...

while (1)
{
/* LEFT */
if (is_KeyPressed (KEY_LEFT, KeyPad))
{
handleKeyPress (KEY_LEFT);
waitKeyRelease (KEY_LEFT);
}

/* RIGHT */
if ( is_KeyPressed (KEY_RIGHT, KeyPad))
{
handleKeyPress(KEY_RIGHT);
waitKeyRelease(KEY_RIGHT);
}

/* DOWN */
if ( is_KeyPressed(KEY_DOWN, KeyPad))
{
handleKeyPress(KEY_DOWN);
waitKeyRelease(KEY_DOWN);
}
// и т.д.
}
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru