PS/2

Dependents:   Synth Lab3Translator PS2_Keyboard CLI ... more

Committer:
shintamainjp
Date:
Wed Sep 29 22:15:03 2010 +0000
Revision:
2:a57bbbec16b1
Parent:
1:823c2798e398

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 1:823c2798e398 1 /**
shintamainjp 1:823c2798e398 2 * PS/2 keyboard interface control class (Version 0.0.1)
shintamainjp 1:823c2798e398 3 *
shintamainjp 1:823c2798e398 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 1:823c2798e398 5 * http://shinta.main.jp/
shintamainjp 1:823c2798e398 6 */
shintamainjp 1:823c2798e398 7 #ifndef _PS2KB_INIT_H_
shintamainjp 1:823c2798e398 8 #define _PS2KB_INIT_H_
shintamainjp 1:823c2798e398 9
shintamainjp 1:823c2798e398 10 #include "mbed.h"
shintamainjp 1:823c2798e398 11
shintamainjp 1:823c2798e398 12 /**
shintamainjp 1:823c2798e398 13 * PS2 keyboard initializer.
shintamainjp 1:823c2798e398 14 */
shintamainjp 1:823c2798e398 15 class PS2KB_INIT {
shintamainjp 1:823c2798e398 16 public:
shintamainjp 1:823c2798e398 17
shintamainjp 1:823c2798e398 18 /**
shintamainjp 1:823c2798e398 19 * Create.
shintamainjp 1:823c2798e398 20 */
shintamainjp 1:823c2798e398 21 PS2KB_INIT(PinName clk_pin, PinName dat_pin);
shintamainjp 1:823c2798e398 22
shintamainjp 1:823c2798e398 23 /**
shintamainjp 1:823c2798e398 24 * Destroy.
shintamainjp 1:823c2798e398 25 */
shintamainjp 1:823c2798e398 26 ~PS2KB_INIT();
shintamainjp 1:823c2798e398 27 private:
shintamainjp 1:823c2798e398 28 DigitalInOut clk;
shintamainjp 1:823c2798e398 29 DigitalInOut dat;
shintamainjp 1:823c2798e398 30
shintamainjp 1:823c2798e398 31 static const int MAX_RETRY = 1000000;
shintamainjp 1:823c2798e398 32
shintamainjp 1:823c2798e398 33 /**
shintamainjp 1:823c2798e398 34 * Send a byte data.
shintamainjp 1:823c2798e398 35 *
shintamainjp 1:823c2798e398 36 * @param c a character.
shintamainjp 1:823c2798e398 37 *
shintamainjp 1:823c2798e398 38 * @return Negative value is a error number.
shintamainjp 1:823c2798e398 39 */
shintamainjp 1:823c2798e398 40 int send(uint8_t c);
shintamainjp 1:823c2798e398 41
shintamainjp 1:823c2798e398 42 /**
shintamainjp 1:823c2798e398 43 * Receive a byte data.
shintamainjp 1:823c2798e398 44 *
shintamainjp 1:823c2798e398 45 * @return return a data. Negative value is a error number.
shintamainjp 1:823c2798e398 46 */
shintamainjp 1:823c2798e398 47 int recv(void);
shintamainjp 1:823c2798e398 48
shintamainjp 1:823c2798e398 49 /**
shintamainjp 1:823c2798e398 50 * Wait a clock down edge.
shintamainjp 1:823c2798e398 51 *
shintamainjp 1:823c2798e398 52 * @return true if wait done.
shintamainjp 1:823c2798e398 53 */
shintamainjp 1:823c2798e398 54 bool waitClockDownEdge(void);
shintamainjp 1:823c2798e398 55
shintamainjp 1:823c2798e398 56 /**
shintamainjp 1:823c2798e398 57 * Wait a clock up level.
shintamainjp 1:823c2798e398 58 *
shintamainjp 1:823c2798e398 59 * @return true if wait done.
shintamainjp 1:823c2798e398 60 */
shintamainjp 1:823c2798e398 61 bool waitClockUpLevel(void);
shintamainjp 1:823c2798e398 62 };
shintamainjp 1:823c2798e398 63
shintamainjp 1:823c2798e398 64 #endif