USB HID Joystick Example (modified USBMouse)

Dependencies:   mbed

Revision:
0:d450e82033a1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 19 06:17:43 2011 +0000
@@ -0,0 +1,36 @@
+#include "mbed.h"
+#include "usbhid.h"
+
+DigitalOut led(LED1);
+
+BusIn buttons(
+    p5, p6, p7, p8,      // PS3: Square, x, o, Triangle
+    p9, p10, p11, p12,   // PS3: L1, R1, L2, R2 
+    p13, p14, p15, p16   // PS3: SELECT, START, L3, R3
+);
+
+AnalogIn analog_x(p17);  // PS3: Left Analog Stick X-axis
+AnalogIn analog_y(p18);  // PS3: Left Analog Stick Y-axis
+AnalogIn analog_z(p19);  // PS3: Right Analog Stick X-axis
+AnalogIn analog_rz(p20); // PS3: Right Analog Stick Y-axis
+
+BusIn stick(
+    p21, p22, p23, p24   // PS3: Up, Down, Left, Right
+);
+
+USBJoystick joystick;
+
+int main() {
+    while(1) {
+        signed char x = (analog_x.read_u16() >> 8) - 0x80;
+        signed char y = (analog_y.read_u16() >> 8) - 0x80;
+        signed char z = (analog_z.read_u16() >> 8) - 0x80;
+        signed char rz = (analog_rz.read_u16() >> 8) - 0x80;
+        
+        joystick.joystick(stick.read(), buttons.read(), x, y, z, rz);
+        
+        led = (buttons > 0 || stick > 0) ? 1 : 0;
+        
+        wait(0.01);
+    }
+}