A version of the PS/2 library customized for MbedConsole. Also includes a few things that make it's behavior easier to control and a few bug fixes.

Dependents:   MbedConsole

Fork of PS2 by Shinichiro Nakamura

Committer:
earlz
Date:
Wed Sep 26 05:21:38 2012 +0000
Revision:
4:fc7f4cc9fbe8
Parent:
1:823c2798e398
Made it easier to work with for how my code works (AlloyOS port)

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
shintamainjp 1:823c2798e398 8 #ifndef _PS2KB_H_
shintamainjp 1:823c2798e398 9 #define _PS2KB_H_
shintamainjp 1:823c2798e398 10
shintamainjp 1:823c2798e398 11 #include "mbed.h"
shintamainjp 1:823c2798e398 12
earlz 4:fc7f4cc9fbe8 13 class PS2KB;
earlz 4:fc7f4cc9fbe8 14
earlz 4:fc7f4cc9fbe8 15 typedef void (*KeyboardCallback)(PS2KB* kb, uint8_t val);
earlz 4:fc7f4cc9fbe8 16
shintamainjp 1:823c2798e398 17 /**
shintamainjp 1:823c2798e398 18 * PS/2 keyboard interface control class.
shintamainjp 1:823c2798e398 19 */
shintamainjp 1:823c2798e398 20 class PS2KB {
shintamainjp 1:823c2798e398 21 public:
shintamainjp 1:823c2798e398 22 /**
shintamainjp 1:823c2798e398 23 * Create.
shintamainjp 1:823c2798e398 24 *
shintamainjp 1:823c2798e398 25 * @param clk_pin Clock pin.
shintamainjp 1:823c2798e398 26 * @param dat_pin Data pin.
shintamainjp 1:823c2798e398 27 */
earlz 4:fc7f4cc9fbe8 28 PS2KB(PinName clk_pin, PinName dat_pin, KeyboardCallback cb);
earlz 4:fc7f4cc9fbe8 29
earlz 4:fc7f4cc9fbe8 30 KeyboardCallback callback;
earlz 4:fc7f4cc9fbe8 31
shintamainjp 1:823c2798e398 32 /**
shintamainjp 1:823c2798e398 33 * Destory.
shintamainjp 1:823c2798e398 34 */
shintamainjp 1:823c2798e398 35 virtual ~PS2KB();
shintamainjp 1:823c2798e398 36
shintamainjp 1:823c2798e398 37 /**
shintamainjp 1:823c2798e398 38 * Get a data from a PS/2 device.
shintamainjp 1:823c2798e398 39 *
shintamainjp 1:823c2798e398 40 * @return A data from a PS/2 device.
shintamainjp 1:823c2798e398 41 */
earlz 4:fc7f4cc9fbe8 42 //virtual int getc(void);
earlz 4:fc7f4cc9fbe8 43
shintamainjp 1:823c2798e398 44
earlz 4:fc7f4cc9fbe8 45
earlz 4:fc7f4cc9fbe8 46
shintamainjp 1:823c2798e398 47
shintamainjp 1:823c2798e398 48 private:
earlz 4:fc7f4cc9fbe8 49 //static const int RINGBUFSIZ = 256;
shintamainjp 1:823c2798e398 50 InterruptIn clk; /**< Interrupt input for CLK. */
shintamainjp 1:823c2798e398 51 DigitalIn dat; /**< Digital input for DAT. */
earlz 4:fc7f4cc9fbe8 52 //Timeout wdt; /**< Watch dog timer. */
earlz 4:fc7f4cc9fbe8 53 //Timer tot; /**< Timeout timer. */
earlz 4:fc7f4cc9fbe8 54 //int timeout; /**< Timeout[ms] for getc(). */
shintamainjp 1:823c2798e398 55
earlz 4:fc7f4cc9fbe8 56 /*typedef struct {
shintamainjp 1:823c2798e398 57 int bitcnt;
shintamainjp 1:823c2798e398 58 int cStart;
shintamainjp 1:823c2798e398 59 int cEnd;
shintamainjp 1:823c2798e398 60 uint8_t buffer[RINGBUFSIZ];
shintamainjp 1:823c2798e398 61 } work_t;
shintamainjp 1:823c2798e398 62 work_t work;
earlz 4:fc7f4cc9fbe8 63 */
earlz 4:fc7f4cc9fbe8 64 uint8_t buffer;
earlz 4:fc7f4cc9fbe8 65 int bitcnt;
shintamainjp 1:823c2798e398 66 void func_timeout(void);
shintamainjp 1:823c2798e398 67 void func_fall(void);
shintamainjp 1:823c2798e398 68
shintamainjp 1:823c2798e398 69 void init_work(void);
shintamainjp 1:823c2798e398 70 };
shintamainjp 1:823c2798e398 71
shintamainjp 1:823c2798e398 72 #endif