Shinichiro Oba
/
USBJoystick
USB HID Joystick Example (modified USBMouse)
main.cpp@0:d450e82033a1, 2011-01-19 (annotated)
- Committer:
- bricklife
- Date:
- Wed Jan 19 06:17:43 2011 +0000
- Revision:
- 0:d450e82033a1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bricklife | 0:d450e82033a1 | 1 | #include "mbed.h" |
bricklife | 0:d450e82033a1 | 2 | #include "usbhid.h" |
bricklife | 0:d450e82033a1 | 3 | |
bricklife | 0:d450e82033a1 | 4 | DigitalOut led(LED1); |
bricklife | 0:d450e82033a1 | 5 | |
bricklife | 0:d450e82033a1 | 6 | BusIn buttons( |
bricklife | 0:d450e82033a1 | 7 | p5, p6, p7, p8, // PS3: Square, x, o, Triangle |
bricklife | 0:d450e82033a1 | 8 | p9, p10, p11, p12, // PS3: L1, R1, L2, R2 |
bricklife | 0:d450e82033a1 | 9 | p13, p14, p15, p16 // PS3: SELECT, START, L3, R3 |
bricklife | 0:d450e82033a1 | 10 | ); |
bricklife | 0:d450e82033a1 | 11 | |
bricklife | 0:d450e82033a1 | 12 | AnalogIn analog_x(p17); // PS3: Left Analog Stick X-axis |
bricklife | 0:d450e82033a1 | 13 | AnalogIn analog_y(p18); // PS3: Left Analog Stick Y-axis |
bricklife | 0:d450e82033a1 | 14 | AnalogIn analog_z(p19); // PS3: Right Analog Stick X-axis |
bricklife | 0:d450e82033a1 | 15 | AnalogIn analog_rz(p20); // PS3: Right Analog Stick Y-axis |
bricklife | 0:d450e82033a1 | 16 | |
bricklife | 0:d450e82033a1 | 17 | BusIn stick( |
bricklife | 0:d450e82033a1 | 18 | p21, p22, p23, p24 // PS3: Up, Down, Left, Right |
bricklife | 0:d450e82033a1 | 19 | ); |
bricklife | 0:d450e82033a1 | 20 | |
bricklife | 0:d450e82033a1 | 21 | USBJoystick joystick; |
bricklife | 0:d450e82033a1 | 22 | |
bricklife | 0:d450e82033a1 | 23 | int main() { |
bricklife | 0:d450e82033a1 | 24 | while(1) { |
bricklife | 0:d450e82033a1 | 25 | signed char x = (analog_x.read_u16() >> 8) - 0x80; |
bricklife | 0:d450e82033a1 | 26 | signed char y = (analog_y.read_u16() >> 8) - 0x80; |
bricklife | 0:d450e82033a1 | 27 | signed char z = (analog_z.read_u16() >> 8) - 0x80; |
bricklife | 0:d450e82033a1 | 28 | signed char rz = (analog_rz.read_u16() >> 8) - 0x80; |
bricklife | 0:d450e82033a1 | 29 | |
bricklife | 0:d450e82033a1 | 30 | joystick.joystick(stick.read(), buttons.read(), x, y, z, rz); |
bricklife | 0:d450e82033a1 | 31 | |
bricklife | 0:d450e82033a1 | 32 | led = (buttons > 0 || stick > 0) ? 1 : 0; |
bricklife | 0:d450e82033a1 | 33 | |
bricklife | 0:d450e82033a1 | 34 | wait(0.01); |
bricklife | 0:d450e82033a1 | 35 | } |
bricklife | 0:d450e82033a1 | 36 | } |