PS2 keyboard

Dependents:   uVGAII_WebBrowser

Committer:
yaolu23
Date:
Wed Mar 12 16:15:14 2014 +0000
Revision:
0:33c8907eb27a
na

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yaolu23 0:33c8907eb27a 1 /**
yaolu23 0:33c8907eb27a 2 * PS/2 keyboard interface control class (Version 0.0.1)
yaolu23 0:33c8907eb27a 3 *
yaolu23 0:33c8907eb27a 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
yaolu23 0:33c8907eb27a 5 * http://shinta.main.jp/
yaolu23 0:33c8907eb27a 6 */
yaolu23 0:33c8907eb27a 7 #ifndef _PS2_KEYBOARD_H_
yaolu23 0:33c8907eb27a 8 #define _PS2_KEYBOARD_H_
yaolu23 0:33c8907eb27a 9
yaolu23 0:33c8907eb27a 10 #include "PS2KB_INIT.h"
yaolu23 0:33c8907eb27a 11 #include "PS2KB.h"
yaolu23 0:33c8907eb27a 12
yaolu23 0:33c8907eb27a 13 class PS2Keyboard {
yaolu23 0:33c8907eb27a 14 public:
yaolu23 0:33c8907eb27a 15 PS2Keyboard(PinName clk_pin, PinName dat_pin);
yaolu23 0:33c8907eb27a 16 ~PS2Keyboard();
yaolu23 0:33c8907eb27a 17 typedef enum {
yaolu23 0:33c8907eb27a 18 KeyMake,
yaolu23 0:33c8907eb27a 19 KeyBreak
yaolu23 0:33c8907eb27a 20 } Type;
yaolu23 0:33c8907eb27a 21 typedef struct {
yaolu23 0:33c8907eb27a 22 Type type;
yaolu23 0:33c8907eb27a 23 int length;
yaolu23 0:33c8907eb27a 24 char scancode[8];
yaolu23 0:33c8907eb27a 25 } keyboard_event_t;
yaolu23 0:33c8907eb27a 26 bool processing(keyboard_event_t *p);
yaolu23 0:33c8907eb27a 27 private:
yaolu23 0:33c8907eb27a 28 PS2KB_INIT ps2kb_init;
yaolu23 0:33c8907eb27a 29 PS2KB ps2kb;
yaolu23 0:33c8907eb27a 30 int count;
yaolu23 0:33c8907eb27a 31 char scancode[8];
yaolu23 0:33c8907eb27a 32 };
yaolu23 0:33c8907eb27a 33
yaolu23 0:33c8907eb27a 34 #endif