First Release
In_CyberStick/In_CyberStick.h
- Committer:
- sankichi
- Date:
- 2013-07-27
- Revision:
- 1:6c392ebcd4d4
- Parent:
- 0:e1265f6b3565
File content as of revision 1:6c392ebcd4d4:
#pragma once /** Class: In_CyberStick * * Used for reading from CyberStick(CZ-8NJ2) * * Example: * * > #include "mbed.h" * * > In_CyberStick myCS(p20, p19,... inputStates); */ #include "mbed.h" #include "InputStatus.h" class In_CyberStick { public: /** Constructor: In_CyberStick * * Parameters: * pn_D0 - DigitalIn for CyberStick's D0 (D-Sub 9pin connector's pin1) * pn_D1 - DigitalIn for D1 (D-Sub9 pin2) * pn_D2 - DigitalIn for D2 (D-Sub9 pin3) * pn_D3 - DigitalIn for D3 (D-Sub9 pin4) * pn_LH - DigitalIn for L/H (D-Sub9 pin6) * pn_ACK - DigitalIn for Ack (D-Sub9 pin7) * pn_REQ - DigitalOut for Req (D-Sub9 pin8) * inputStatus - The variable to store input status */ In_CyberStick( PinName pn_D0, PinName pn_D1, PinName pn_D2, PinName pn_D3, PinName pn_LH, PinName pn_ACK, PinName pn_REQ, InputStatus *inputStatus ); void TestShow(void); void StartReading(void); void StopReading(void); private: // Private constants static const int REQUESTINTERVAL__MICROSEC = 2500; // reading period microsec static const int TRANSFERSPEED_MAX__MICROSEC = 50; // from AJOY_SUB.DOC static const int TRANSFERSPEED_1_2__MICROSEC = 96; static const int TRANSFERSPEED_1_3__MICROSEC = 144; static const int TRANSFERSPEED_1_4__MICROSEC = 192; // mbed pins DigitalIn _IN_D0; DigitalIn _IN_D1; DigitalIn _IN_D2; DigitalIn _IN_D3; DigitalIn _IN_LH; DigitalIn _IN_ACK; DigitalOut _OUT_REQ; // Variables InputStatus *_InputStatus; volatile char _ReadEnable; Ticker _PollingTicker; Timer _AckTimer; volatile int _Buttons; volatile char _Ch0; volatile char _Ch1; volatile char _Ch2; volatile char _Ch3; volatile int _AnalogReadFailCounter; // Private Method void Initialize(void); void EnablePolling(void); void DisablePolling(void); void PollingMethod(void); void ReadPhase(char phase); void DigitalModeReader(void); int ReadPinValue(void); void CommitAnalogData(void); };