First Release
In_MD6B/In_MD6B.h@0:e1265f6b3565, 2013-07-27 (annotated)
- Committer:
- sankichi
- Date:
- Sat Jul 27 14:05:47 2013 +0000
- Revision:
- 0:e1265f6b3565
First Release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sankichi | 0:e1265f6b3565 | 1 | #pragma once |
sankichi | 0:e1265f6b3565 | 2 | |
sankichi | 0:e1265f6b3565 | 3 | /** Class: In_MD6B |
sankichi | 0:e1265f6b3565 | 4 | * |
sankichi | 0:e1265f6b3565 | 5 | * For reading input from Sega Fighting pad 6B |
sankichi | 0:e1265f6b3565 | 6 | * |
sankichi | 0:e1265f6b3565 | 7 | * Example: |
sankichi | 0:e1265f6b3565 | 8 | * |
sankichi | 0:e1265f6b3565 | 9 | * > #include "mbed.h" |
sankichi | 0:e1265f6b3565 | 10 | * |
sankichi | 0:e1265f6b3565 | 11 | * > In_MD6B myFightingPad6B(p20, p19,... inputStates); |
sankichi | 0:e1265f6b3565 | 12 | */ |
sankichi | 0:e1265f6b3565 | 13 | |
sankichi | 0:e1265f6b3565 | 14 | #include "mbed.h" |
sankichi | 0:e1265f6b3565 | 15 | #include "InputStatus.h" |
sankichi | 0:e1265f6b3565 | 16 | |
sankichi | 0:e1265f6b3565 | 17 | class In_MD6B |
sankichi | 0:e1265f6b3565 | 18 | { |
sankichi | 0:e1265f6b3565 | 19 | public: |
sankichi | 0:e1265f6b3565 | 20 | /** Constructor: In_MD6B |
sankichi | 0:e1265f6b3565 | 21 | * |
sankichi | 0:e1265f6b3565 | 22 | * Parameters: |
sankichi | 0:e1265f6b3565 | 23 | * pn_D0 - DigitalIn for 6B's D0 (D-Sub9 connector's pin1) |
sankichi | 0:e1265f6b3565 | 24 | * pn_D1 - DigitalIn for D1 (D-Sub9 pin2) |
sankichi | 0:e1265f6b3565 | 25 | * pn_D2 - DigitalIn for D2 (D-Sub9 pin3) |
sankichi | 0:e1265f6b3565 | 26 | * pn_D3 - DigitalIn for D3 (D-Sub9 pin4) |
sankichi | 0:e1265f6b3565 | 27 | * pn_D4 - DigitalIn for D4 (D-Sub9 pin6) |
sankichi | 0:e1265f6b3565 | 28 | * pn_D5 - DigitalIn for D5 (D-Sub9 pin9) |
sankichi | 0:e1265f6b3565 | 29 | * pn_SEL - DigitalOut for Select (D-Sub9 pin7) |
sankichi | 0:e1265f6b3565 | 30 | * inputStatus - The variable to store input status |
sankichi | 0:e1265f6b3565 | 31 | */ |
sankichi | 0:e1265f6b3565 | 32 | In_MD6B( |
sankichi | 0:e1265f6b3565 | 33 | PinName pn_D0, PinName pn_D1, PinName pn_D2, PinName pn_D3, |
sankichi | 0:e1265f6b3565 | 34 | PinName pn_D4, PinName pn_D5, PinName pn_SEL, |
sankichi | 0:e1265f6b3565 | 35 | InputStatus *inputStatus |
sankichi | 0:e1265f6b3565 | 36 | ); |
sankichi | 0:e1265f6b3565 | 37 | |
sankichi | 0:e1265f6b3565 | 38 | void StartReading(void); |
sankichi | 0:e1265f6b3565 | 39 | void StopReading(void); |
sankichi | 0:e1265f6b3565 | 40 | |
sankichi | 0:e1265f6b3565 | 41 | private: |
sankichi | 0:e1265f6b3565 | 42 | // Private constants |
sankichi | 0:e1265f6b3565 | 43 | static const int READINGINTERVAL__MICROSEC = 5000; // reading period microsec |
sankichi | 0:e1265f6b3565 | 44 | static const int SELSTATETIME__MICROSEC = 2; // Select信号の立ち上げ_立ち下げを行う長さ |
sankichi | 0:e1265f6b3565 | 45 | // 短すぎると6Bが反応しない? |
sankichi | 0:e1265f6b3565 | 46 | |
sankichi | 0:e1265f6b3565 | 47 | // mbed pins |
sankichi | 0:e1265f6b3565 | 48 | DigitalIn _IN_D0; |
sankichi | 0:e1265f6b3565 | 49 | DigitalIn _IN_D1; |
sankichi | 0:e1265f6b3565 | 50 | DigitalIn _IN_D2; |
sankichi | 0:e1265f6b3565 | 51 | DigitalIn _IN_D3; |
sankichi | 0:e1265f6b3565 | 52 | DigitalIn _IN_D4; |
sankichi | 0:e1265f6b3565 | 53 | DigitalIn _IN_D5; |
sankichi | 0:e1265f6b3565 | 54 | DigitalOut _OUT_SEL; |
sankichi | 0:e1265f6b3565 | 55 | |
sankichi | 0:e1265f6b3565 | 56 | // Variables |
sankichi | 0:e1265f6b3565 | 57 | InputStatus *_InputStatus; |
sankichi | 0:e1265f6b3565 | 58 | volatile char _ReadEnable; |
sankichi | 0:e1265f6b3565 | 59 | Ticker _PollingTicker; |
sankichi | 0:e1265f6b3565 | 60 | volatile char _PhaseData[8]; |
sankichi | 0:e1265f6b3565 | 61 | |
sankichi | 0:e1265f6b3565 | 62 | |
sankichi | 0:e1265f6b3565 | 63 | // Private Method |
sankichi | 0:e1265f6b3565 | 64 | void Initialize(void); |
sankichi | 0:e1265f6b3565 | 65 | void EnablePolling(void); |
sankichi | 0:e1265f6b3565 | 66 | void DisablePolling(void); |
sankichi | 0:e1265f6b3565 | 67 | void PollingMethod(void); |
sankichi | 0:e1265f6b3565 | 68 | |
sankichi | 0:e1265f6b3565 | 69 | int ReadPinValue(void); |
sankichi | 0:e1265f6b3565 | 70 | }; |