mylibrary
Embed:
(wiki syntax)
Show/hide line numbers
PS3.h
00001 #ifndef PS3_H 00002 #define PS3_H 00003 #include "mbed.h" 00004 00005 #define MARU 64 00006 #define BATU 32 00007 #define SIKAKU 1 00008 #define SANKAKU 16 00009 #define UE 1 00010 #define SITA 2 00011 #define MIGI 4 00012 #define HIDARI 8 00013 #define LEFT1 2 00014 #define LEFT2 4 00015 #define RIGHT1 8 00016 #define RIGHT2 16 00017 00018 class PS3 : public Serial 00019 { 00020 public: 00021 PS3(PinName TX, PinName RX); 00022 /*{ 00023 PS3Data[0] = 128; 00024 PS3Data[1] = 0; 00025 PS3Data[2] = 0; 00026 PS3Data[3] = 64; 00027 PS3Data[4] = 64; 00028 PS3Data[5] = 64; 00029 PS3Data[6] = 64; 00030 PS3Data[7] = 0; 00031 baud(2400); 00032 Serial::attach(this, &PS3::getdata, Serial::RxIrq); 00033 }*/ 00034 00035 bool maru(); 00036 /*{ 00037 return PS3Data[2] & MARU; 00038 }*/ 00039 00040 bool batu(); 00041 /*{ 00042 return PS3Data[2] & BATU; 00043 }*/ 00044 00045 bool sikaku(); 00046 /*{ 00047 return PS3Data[1] & SIKAKU; 00048 }*/ 00049 00050 bool sankaku(); 00051 /*{ 00052 return PS3Data[2] & SANKAKU; 00053 }*/ 00054 00055 bool ue(); 00056 /*{ 00057 return PS3Data[2] & UE && !(PS3Data[2] & SITA); 00058 }*/ 00059 00060 bool sita(); 00061 /*{ 00062 return PS3Data[2] & SITA && !(PS3Data[2] & UE); 00063 }*/ 00064 00065 bool start(); 00066 /*{ 00067 return PS3Data[2] & UE && PS3Data[2] & SITA; 00068 }*/ 00069 00070 bool migi(); 00071 /*{ 00072 return PS3Data[2] & MIGI && !(PS3Data[2] & HIDARI); 00073 }*/ 00074 00075 bool hidari(); 00076 /*{ 00077 return PS3Data[2] & HIDARI && !(PS3Data[2] & MIGI); 00078 }*/ 00079 00080 bool select(); 00081 /*{ 00082 return PS3Data[2] & MIGI && PS3Data[2] & HIDARI; 00083 }*/ 00084 00085 bool L1(); 00086 /*{ 00087 return PS3Data[1] & LEFT1; 00088 }*/ 00089 00090 bool L2(); 00091 /*{ 00092 return PS3Data[1] & LEFT2; 00093 }*/ 00094 00095 bool R1(); 00096 /*{ 00097 return PS3Data[1] & RIGHT1; 00098 }*/ 00099 00100 bool R2(); 00101 /*{ 00102 return PS3Data[1] & RIGHT2; 00103 }*/ 00104 00105 int8_t analogLX(); 00106 /*{ 00107 if(PS3Data[3] == 0) 00108 PS3Data[3]=1; 00109 return PS3Data[3]-64; 00110 }*/ 00111 00112 int8_t analogLY(); 00113 /*{ 00114 if(PS3Data[4] == 0) 00115 PS3Data[4]=1; 00116 return (PS3Data[4]-64)*(-1); 00117 }*/ 00118 00119 int8_t analogRX(); 00120 /*{ 00121 if(PS3Data[5] == 0) 00122 PS3Data[5]=1; 00123 return PS3Data[5]-64; 00124 }*/ 00125 00126 int8_t analogRY(); 00127 /*{ 00128 if(PS3Data[6] == 0) 00129 PS3Data[6]=1; 00130 return (PS3Data[6]-64)*(-1); 00131 }*/ 00132 00133 00134 00135 private: 00136 00137 int8_t sum; 00138 uint8_t PS3Data[8]; 00139 uint8_t GetData[8]; 00140 00141 void getdata(); 00142 /*{ 00143 while(Serial::getc() != 128) 00144 { 00145 } 00146 for(int i = 1;i < 8;i++) 00147 { 00148 GetData[i] = Serial::getc(); 00149 } 00150 00151 sum = GetData[1] + GetData[2]; 00152 for(int i = 3;i < 7;i++) 00153 { 00154 sum += GetData[i] - 64; 00155 } 00156 00157 if(sum < 0) 00158 sum+=128; 00159 00160 if(sum == GetData[7]) 00161 { 00162 for(int i = 0;i < 8;i++) 00163 { 00164 PS3Data[i]=GetData[i]; 00165 } 00166 } 00167 }*/ 00168 00169 }; 00170 00171 #endif 00172 00173
Generated on Tue Jul 19 2022 06:59:13 by
1.7.2