Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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