Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of PS2 by
PS2KB.h@1:823c2798e398, 2010-09-29 (annotated)
- Committer:
- shintamainjp
- Date:
- Wed Sep 29 14:11:44 2010 +0000
- Revision:
- 1:823c2798e398
- Child:
- 4:fc7f4cc9fbe8
Who changed what in which revision?
| User | Revision | Line number | New 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 | |
| shintamainjp | 1:823c2798e398 | 13 | /** |
| shintamainjp | 1:823c2798e398 | 14 | * PS/2 keyboard interface control class. |
| shintamainjp | 1:823c2798e398 | 15 | */ |
| shintamainjp | 1:823c2798e398 | 16 | class PS2KB { |
| shintamainjp | 1:823c2798e398 | 17 | public: |
| shintamainjp | 1:823c2798e398 | 18 | /** |
| shintamainjp | 1:823c2798e398 | 19 | * Create. |
| shintamainjp | 1:823c2798e398 | 20 | * |
| shintamainjp | 1:823c2798e398 | 21 | * @param clk_pin Clock pin. |
| shintamainjp | 1:823c2798e398 | 22 | * @param dat_pin Data pin. |
| shintamainjp | 1:823c2798e398 | 23 | */ |
| shintamainjp | 1:823c2798e398 | 24 | PS2KB(PinName clk_pin, PinName dat_pin); |
| shintamainjp | 1:823c2798e398 | 25 | |
| shintamainjp | 1:823c2798e398 | 26 | /** |
| shintamainjp | 1:823c2798e398 | 27 | * Destory. |
| shintamainjp | 1:823c2798e398 | 28 | */ |
| shintamainjp | 1:823c2798e398 | 29 | virtual ~PS2KB(); |
| shintamainjp | 1:823c2798e398 | 30 | |
| shintamainjp | 1:823c2798e398 | 31 | /** |
| shintamainjp | 1:823c2798e398 | 32 | * Get a data from a PS/2 device. |
| shintamainjp | 1:823c2798e398 | 33 | * |
| shintamainjp | 1:823c2798e398 | 34 | * @return A data from a PS/2 device. |
| shintamainjp | 1:823c2798e398 | 35 | */ |
| shintamainjp | 1:823c2798e398 | 36 | virtual int getc(void); |
| shintamainjp | 1:823c2798e398 | 37 | |
| shintamainjp | 1:823c2798e398 | 38 | /** |
| shintamainjp | 1:823c2798e398 | 39 | * Set timeout. |
| shintamainjp | 1:823c2798e398 | 40 | * |
| shintamainjp | 1:823c2798e398 | 41 | * @param ms Timeout ms. |
| shintamainjp | 1:823c2798e398 | 42 | */ |
| shintamainjp | 1:823c2798e398 | 43 | virtual void setTimeout(int ms); |
| shintamainjp | 1:823c2798e398 | 44 | |
| shintamainjp | 1:823c2798e398 | 45 | private: |
| shintamainjp | 1:823c2798e398 | 46 | static const int RINGBUFSIZ = 256; |
| shintamainjp | 1:823c2798e398 | 47 | InterruptIn clk; /**< Interrupt input for CLK. */ |
| shintamainjp | 1:823c2798e398 | 48 | DigitalIn dat; /**< Digital input for DAT. */ |
| shintamainjp | 1:823c2798e398 | 49 | Timeout wdt; /**< Watch dog timer. */ |
| shintamainjp | 1:823c2798e398 | 50 | Timer tot; /**< Timeout timer. */ |
| shintamainjp | 1:823c2798e398 | 51 | int timeout; /**< Timeout[ms] for getc(). */ |
| shintamainjp | 1:823c2798e398 | 52 | |
| shintamainjp | 1:823c2798e398 | 53 | typedef struct { |
| shintamainjp | 1:823c2798e398 | 54 | int bitcnt; |
| shintamainjp | 1:823c2798e398 | 55 | int cStart; |
| shintamainjp | 1:823c2798e398 | 56 | int cEnd; |
| shintamainjp | 1:823c2798e398 | 57 | uint8_t buffer[RINGBUFSIZ]; |
| shintamainjp | 1:823c2798e398 | 58 | } work_t; |
| shintamainjp | 1:823c2798e398 | 59 | work_t work; |
| shintamainjp | 1:823c2798e398 | 60 | |
| shintamainjp | 1:823c2798e398 | 61 | void func_timeout(void); |
| shintamainjp | 1:823c2798e398 | 62 | void func_fall(void); |
| shintamainjp | 1:823c2798e398 | 63 | |
| shintamainjp | 1:823c2798e398 | 64 | void init_work(void); |
| shintamainjp | 1:823c2798e398 | 65 | }; |
| shintamainjp | 1:823c2798e398 | 66 | |
| shintamainjp | 1:823c2798e398 | 67 | #endif |
