USB HID Joystick Example (modified USBMouse)

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "usbhid.h"
00003 
00004 DigitalOut led(LED1);
00005 
00006 BusIn buttons(
00007     p5, p6, p7, p8,      // PS3: Square, x, o, Triangle
00008     p9, p10, p11, p12,   // PS3: L1, R1, L2, R2 
00009     p13, p14, p15, p16   // PS3: SELECT, START, L3, R3
00010 );
00011 
00012 AnalogIn analog_x(p17);  // PS3: Left Analog Stick X-axis
00013 AnalogIn analog_y(p18);  // PS3: Left Analog Stick Y-axis
00014 AnalogIn analog_z(p19);  // PS3: Right Analog Stick X-axis
00015 AnalogIn analog_rz(p20); // PS3: Right Analog Stick Y-axis
00016 
00017 BusIn stick(
00018     p21, p22, p23, p24   // PS3: Up, Down, Left, Right
00019 );
00020 
00021 USBJoystick joystick;
00022 
00023 int main() {
00024     while(1) {
00025         signed char x = (analog_x.read_u16() >> 8) - 0x80;
00026         signed char y = (analog_y.read_u16() >> 8) - 0x80;
00027         signed char z = (analog_z.read_u16() >> 8) - 0x80;
00028         signed char rz = (analog_rz.read_u16() >> 8) - 0x80;
00029         
00030         joystick.joystick(stick.read(), buttons.read(), x, y, z, rz);
00031         
00032         led = (buttons > 0 || stick > 0) ? 1 : 0;
00033         
00034         wait(0.01);
00035     }
00036 }