ps3 with sbdbt
Diff: PS3.cpp
- Revision:
- 0:87f83956cb4c
- Child:
- 1:feb844c4721e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PS3.cpp Tue May 10 08:18:54 2016 +0000 @@ -0,0 +1,35 @@ +#include "PS3.h" + +PS3::PS3(PinName TX, PinName RX) : Serial(TX, RX) +{ + PS3Data[0] = 128; + PS3Data[1] = 0; + PS3Data[2] = 0; + PS3Data[3] = 64; + PS3Data[4] = 64; + PS3Data[5] = 64; + PS3Data[6] = 64; + PS3Data[7] = 0; + baud(2400); + attach(this, &PS3::getdata, Serial::RxIrq); +} +void PS3::getdata() +{ + if(Serial::readable()) + { + for(int i = 0;i < 8;i++) + *(PS3Data+i) = Serial::getc(); + } +} +bool PS3::getButtonState(int button) +{ + return (*(PS3Data+(button>>4)) >> (button & 0x0f)) & 1; +} +double PS3::getRightJoystickAngle() +{ + return atan2(double(PS3Data[6]*-1+64), double(PS3Data[5]-64))*double(180/PI); +} +double PS3::getLeftJoystickAngle() +{ + return atan2(double(PS3Data[4]*-1+64), double(PS3Data[3]-64))*double(180/PI); +}