プレステ1アナログコントローラ用ライブラリのサンプル

Dependencies:   mbed-src

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pspad.h Source File

pspad.h

00001 /*------------------------
00002  *-----2013/10/1-------
00003  *・通信失敗時はアナログパッドはホームポジションを返すように変更
00004  *・前回のボタンの値を表す変数を追加
00005  *・振動機能を追加(VIBRATE=1)で振動
00006  *
00007  *-----2014/4/3--------
00008  *・PsCommのクロック操作と読み取りの順番を訂正 サンキューM田氏
00009  *---------------------------*/
00010 
00011 #ifndef PSPAD_H_
00012 #define PSPAD_H_
00013 
00014 /*--------PSPADのアクセスの構造体-------
00015 PS--.PsRead()
00016 |---.right_x
00017 |---.right_y
00018 |---.left_x
00019 |---.left_y;
00020 |---.VIBRATE;
00021 |---.ANALOG_MODE;
00022 |---.BUTTON .WORD
00023 |       |---.BIT.L2
00024 |             |-.R2
00025 |             |-.L1
00026 |             |-.R1
00027 |             |-.SANKAKU
00028 |             |-.MARU
00029 |             |-.BATU
00030 |             |-.SIKAKU
00031 |             |-.SELECT
00032 |             |-.L3
00033 |             |-.R3
00034 |             |-.START
00035 |             |-.UP
00036 |             |-.RIGHT
00037 |             |-.DOWN
00038 |             --.LEFT
00039 ----.PERV--.right_x
00040        |---.right_y
00041        |---.left_x
00042        |---.left_y;
00043        ----.BUTTON .WORD
00044                |---.BIT.L2
00045                      |-.R2
00046                      |-.L1
00047                      |-.R1
00048                      |-.SANKAKU
00049                      |-.MARU
00050                      |-.BATU
00051                      |-.SIKAKU
00052                      |-.SELECT
00053                      |-.L3
00054                      |-.R3
00055                      |-.START
00056                      |-.UP
00057                      |-.RIGHT
00058                      |-.DOWN
00059                      --.LEFT
00060 ---------------------------------------*/
00061 
00062 //-------------------------------------------------------------------------
00063 // Class
00064 //-------------------------------------------------------------------------
00065 class Pspad
00066 {
00067 public:
00068     Pspad(PinName dat, PinName cmd, PinName sel, PinName clk);
00069     void PsRead(void);
00070 
00071     union {
00072         uint32_t WORD;
00073         struct {
00074             unsigned char L2       :1;
00075             unsigned char R2       :1;
00076             unsigned char L1       :1;
00077             unsigned char R1       :1;
00078 
00079             unsigned char SANKAKU  :1;
00080             unsigned char MARU     :1;
00081             unsigned char BATU     :1;
00082             unsigned char SIKAKU   :1;
00083 
00084             unsigned char SELECT   :1;
00085             unsigned char L3       :1;
00086             unsigned char R3       :1;
00087             unsigned char START    :1;
00088 
00089             unsigned char UP       :1;
00090             unsigned char RIGHT    :1;
00091             unsigned char DOWN     :1;
00092             unsigned char LEFT     :1;
00093         } BIT;
00094     } BUTTON;
00095     int8_t right_x, right_y, left_x, left_y;
00096     unsigned char VIBRATE;
00097     unsigned char ANALOG_MODE;
00098     struct {
00099         union {
00100             uint32_t WORD;
00101             struct {
00102                 unsigned char L2       :1;
00103                 unsigned char R2       :1;
00104                 unsigned char L1       :1;
00105                 unsigned char R1       :1;
00106 
00107                 unsigned char SANKAKU  :1;
00108                 unsigned char MARU     :1;
00109                 unsigned char BATU     :1;
00110                 unsigned char SIKAKU   :1;
00111 
00112                 unsigned char SELECT   :1;
00113                 unsigned char L3       :1;
00114                 unsigned char R3       :1;
00115                 unsigned char START    :1;
00116 
00117                 unsigned char UP       :1;
00118                 unsigned char RIGHT    :1;
00119                 unsigned char DOWN     :1;
00120                 unsigned char LEFT     :1;
00121             } BIT;
00122         } BUTTON;
00123         int8_t right_x, right_y, left_x, left_y;
00124     } PREV;
00125 
00126 private:
00127     uint8_t PsComm(uint8_t send_data);
00128     Timer tm;
00129     DigitalIn  datpin;
00130     DigitalOut cmdpin;
00131     DigitalOut selpin;
00132     DigitalOut clkpin;
00133 };
00134 
00135 #endif /* PSPAD_H_ */