First Release
Embed:
(wiki syntax)
Show/hide line numbers
In_MD6B.h
00001 #pragma once 00002 00003 /** Class: In_MD6B 00004 * 00005 * For reading input from Sega Fighting pad 6B 00006 * 00007 * Example: 00008 * 00009 * > #include "mbed.h" 00010 * 00011 * > In_MD6B myFightingPad6B(p20, p19,... inputStates); 00012 */ 00013 00014 #include "mbed.h" 00015 #include "InputStatus.h" 00016 00017 class In_MD6B 00018 { 00019 public: 00020 /** Constructor: In_MD6B 00021 * 00022 * Parameters: 00023 * pn_D0 - DigitalIn for 6B's D0 (D-Sub9 connector's pin1) 00024 * pn_D1 - DigitalIn for D1 (D-Sub9 pin2) 00025 * pn_D2 - DigitalIn for D2 (D-Sub9 pin3) 00026 * pn_D3 - DigitalIn for D3 (D-Sub9 pin4) 00027 * pn_D4 - DigitalIn for D4 (D-Sub9 pin6) 00028 * pn_D5 - DigitalIn for D5 (D-Sub9 pin9) 00029 * pn_SEL - DigitalOut for Select (D-Sub9 pin7) 00030 * inputStatus - The variable to store input status 00031 */ 00032 In_MD6B( 00033 PinName pn_D0, PinName pn_D1, PinName pn_D2, PinName pn_D3, 00034 PinName pn_D4, PinName pn_D5, PinName pn_SEL, 00035 InputStatus *inputStatus 00036 ); 00037 00038 void StartReading(void); 00039 void StopReading(void); 00040 00041 private: 00042 // Private constants 00043 static const int READINGINTERVAL__MICROSEC = 5000; // reading period microsec 00044 static const int SELSTATETIME__MICROSEC = 2; // Select信号の立ち上げ_立ち下げを行う長さ 00045 // 短すぎると6Bが反応しない? 00046 00047 // mbed pins 00048 DigitalIn _IN_D0; 00049 DigitalIn _IN_D1; 00050 DigitalIn _IN_D2; 00051 DigitalIn _IN_D3; 00052 DigitalIn _IN_D4; 00053 DigitalIn _IN_D5; 00054 DigitalOut _OUT_SEL; 00055 00056 // Variables 00057 InputStatus *_InputStatus; 00058 volatile char _ReadEnable; 00059 Ticker _PollingTicker; 00060 volatile char _PhaseData[8]; 00061 00062 00063 // Private Method 00064 void Initialize(void); 00065 void EnablePolling(void); 00066 void DisablePolling(void); 00067 void PollingMethod(void); 00068 00069 int ReadPinValue(void); 00070 };
Generated on Thu Jul 14 2022 14:49:55 by 1.7.2