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

Dependencies:   mbed-src

Committer:
kurt
Date:
Fri Apr 04 05:23:04 2014 +0000
Revision:
3:3a33f8294a84
Parent:
0:ab4722670dd8
fix PsComm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kurt 3:3a33f8294a84 1 /*------------------------
kurt 3:3a33f8294a84 2 *-----2013/10/1-------
kurt 3:3a33f8294a84 3 *・通信失敗時はアナログパッドはホームポジションを返すように変更
kurt 3:3a33f8294a84 4 *・前回のボタンの値を表す変数を追加
kurt 3:3a33f8294a84 5 *・振動機能を追加(VIBRATE=1)で振動
kurt 0:ab4722670dd8 6 *
kurt 3:3a33f8294a84 7 *-----2014/4/3--------
kurt 3:3a33f8294a84 8 *・PsCommのクロック操作と読み取りの順番を訂正 サンキューM田氏
kurt 3:3a33f8294a84 9 *---------------------------*/
kurt 0:ab4722670dd8 10
kurt 0:ab4722670dd8 11 #ifndef PSPAD_H_
kurt 0:ab4722670dd8 12 #define PSPAD_H_
kurt 0:ab4722670dd8 13
kurt 0:ab4722670dd8 14 /*--------PSPADのアクセスの構造体-------
kurt 0:ab4722670dd8 15 PS--.PsRead()
kurt 0:ab4722670dd8 16 |---.right_x
kurt 0:ab4722670dd8 17 |---.right_y
kurt 0:ab4722670dd8 18 |---.left_x
kurt 0:ab4722670dd8 19 |---.left_y;
kurt 0:ab4722670dd8 20 |---.VIBRATE;
kurt 0:ab4722670dd8 21 |---.ANALOG_MODE;
kurt 0:ab4722670dd8 22 |---.BUTTON .WORD
kurt 0:ab4722670dd8 23 | |---.BIT.L2
kurt 0:ab4722670dd8 24 | |-.R2
kurt 0:ab4722670dd8 25 | |-.L1
kurt 0:ab4722670dd8 26 | |-.R1
kurt 0:ab4722670dd8 27 | |-.SANKAKU
kurt 0:ab4722670dd8 28 | |-.MARU
kurt 0:ab4722670dd8 29 | |-.BATU
kurt 0:ab4722670dd8 30 | |-.SIKAKU
kurt 0:ab4722670dd8 31 | |-.SELECT
kurt 0:ab4722670dd8 32 | |-.L3
kurt 0:ab4722670dd8 33 | |-.R3
kurt 0:ab4722670dd8 34 | |-.START
kurt 0:ab4722670dd8 35 | |-.UP
kurt 0:ab4722670dd8 36 | |-.RIGHT
kurt 0:ab4722670dd8 37 | |-.DOWN
kurt 0:ab4722670dd8 38 | --.LEFT
kurt 0:ab4722670dd8 39 ----.PERV--.right_x
kurt 0:ab4722670dd8 40 |---.right_y
kurt 0:ab4722670dd8 41 |---.left_x
kurt 0:ab4722670dd8 42 |---.left_y;
kurt 0:ab4722670dd8 43 ----.BUTTON .WORD
kurt 0:ab4722670dd8 44 |---.BIT.L2
kurt 0:ab4722670dd8 45 |-.R2
kurt 0:ab4722670dd8 46 |-.L1
kurt 0:ab4722670dd8 47 |-.R1
kurt 0:ab4722670dd8 48 |-.SANKAKU
kurt 0:ab4722670dd8 49 |-.MARU
kurt 0:ab4722670dd8 50 |-.BATU
kurt 0:ab4722670dd8 51 |-.SIKAKU
kurt 0:ab4722670dd8 52 |-.SELECT
kurt 0:ab4722670dd8 53 |-.L3
kurt 0:ab4722670dd8 54 |-.R3
kurt 0:ab4722670dd8 55 |-.START
kurt 0:ab4722670dd8 56 |-.UP
kurt 0:ab4722670dd8 57 |-.RIGHT
kurt 0:ab4722670dd8 58 |-.DOWN
kurt 0:ab4722670dd8 59 --.LEFT
kurt 0:ab4722670dd8 60 ---------------------------------------*/
kurt 0:ab4722670dd8 61
kurt 0:ab4722670dd8 62 //-------------------------------------------------------------------------
kurt 0:ab4722670dd8 63 // Class
kurt 0:ab4722670dd8 64 //-------------------------------------------------------------------------
kurt 0:ab4722670dd8 65 class Pspad
kurt 0:ab4722670dd8 66 {
kurt 0:ab4722670dd8 67 public:
kurt 0:ab4722670dd8 68 Pspad(PinName dat, PinName cmd, PinName sel, PinName clk);
kurt 0:ab4722670dd8 69 void PsRead(void);
kurt 0:ab4722670dd8 70
kurt 0:ab4722670dd8 71 union {
kurt 0:ab4722670dd8 72 uint32_t WORD;
kurt 0:ab4722670dd8 73 struct {
kurt 0:ab4722670dd8 74 unsigned char L2 :1;
kurt 0:ab4722670dd8 75 unsigned char R2 :1;
kurt 0:ab4722670dd8 76 unsigned char L1 :1;
kurt 0:ab4722670dd8 77 unsigned char R1 :1;
kurt 0:ab4722670dd8 78
kurt 0:ab4722670dd8 79 unsigned char SANKAKU :1;
kurt 0:ab4722670dd8 80 unsigned char MARU :1;
kurt 0:ab4722670dd8 81 unsigned char BATU :1;
kurt 0:ab4722670dd8 82 unsigned char SIKAKU :1;
kurt 0:ab4722670dd8 83
kurt 0:ab4722670dd8 84 unsigned char SELECT :1;
kurt 0:ab4722670dd8 85 unsigned char L3 :1;
kurt 0:ab4722670dd8 86 unsigned char R3 :1;
kurt 0:ab4722670dd8 87 unsigned char START :1;
kurt 0:ab4722670dd8 88
kurt 0:ab4722670dd8 89 unsigned char UP :1;
kurt 0:ab4722670dd8 90 unsigned char RIGHT :1;
kurt 0:ab4722670dd8 91 unsigned char DOWN :1;
kurt 0:ab4722670dd8 92 unsigned char LEFT :1;
kurt 0:ab4722670dd8 93 } BIT;
kurt 0:ab4722670dd8 94 } BUTTON;
kurt 0:ab4722670dd8 95 int8_t right_x, right_y, left_x, left_y;
kurt 0:ab4722670dd8 96 unsigned char VIBRATE;
kurt 0:ab4722670dd8 97 unsigned char ANALOG_MODE;
kurt 0:ab4722670dd8 98 struct {
kurt 0:ab4722670dd8 99 union {
kurt 0:ab4722670dd8 100 uint32_t WORD;
kurt 0:ab4722670dd8 101 struct {
kurt 0:ab4722670dd8 102 unsigned char L2 :1;
kurt 0:ab4722670dd8 103 unsigned char R2 :1;
kurt 0:ab4722670dd8 104 unsigned char L1 :1;
kurt 0:ab4722670dd8 105 unsigned char R1 :1;
kurt 0:ab4722670dd8 106
kurt 0:ab4722670dd8 107 unsigned char SANKAKU :1;
kurt 0:ab4722670dd8 108 unsigned char MARU :1;
kurt 0:ab4722670dd8 109 unsigned char BATU :1;
kurt 0:ab4722670dd8 110 unsigned char SIKAKU :1;
kurt 0:ab4722670dd8 111
kurt 0:ab4722670dd8 112 unsigned char SELECT :1;
kurt 0:ab4722670dd8 113 unsigned char L3 :1;
kurt 0:ab4722670dd8 114 unsigned char R3 :1;
kurt 0:ab4722670dd8 115 unsigned char START :1;
kurt 0:ab4722670dd8 116
kurt 0:ab4722670dd8 117 unsigned char UP :1;
kurt 0:ab4722670dd8 118 unsigned char RIGHT :1;
kurt 0:ab4722670dd8 119 unsigned char DOWN :1;
kurt 0:ab4722670dd8 120 unsigned char LEFT :1;
kurt 0:ab4722670dd8 121 } BIT;
kurt 0:ab4722670dd8 122 } BUTTON;
kurt 0:ab4722670dd8 123 int8_t right_x, right_y, left_x, left_y;
kurt 0:ab4722670dd8 124 } PREV;
kurt 0:ab4722670dd8 125
kurt 0:ab4722670dd8 126 private:
kurt 0:ab4722670dd8 127 uint8_t PsComm(uint8_t send_data);
kurt 0:ab4722670dd8 128 Timer tm;
kurt 0:ab4722670dd8 129 DigitalIn datpin;
kurt 0:ab4722670dd8 130 DigitalOut cmdpin;
kurt 0:ab4722670dd8 131 DigitalOut selpin;
kurt 0:ab4722670dd8 132 DigitalOut clkpin;
kurt 0:ab4722670dd8 133 };
kurt 0:ab4722670dd8 134
kurt 0:ab4722670dd8 135 #endif /* PSPAD_H_ */