プレステ1コントローラ用ライブラリ

Committer:
kurt
Date:
Fri Apr 04 05:19:24 2014 +0000
Revision:
5:0a62d4621fb0
Parent:
4:64efd8803fa9
Add history

Who changed what in which revision?

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