プレステ1アナログコントローラ用ライブラリのサンプル
Embed:
(wiki syntax)
Show/hide line numbers
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_ */
Generated on Tue Jul 12 2022 19:57:04 by 1.7.2