ps3 with sbdbt

Dependents:   omuni

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);
+}