May not work well
Dependencies: USBDevice_edit mbed
main.cpp@0:7e061992d951, 2017-05-04 (annotated)
- Committer:
- Ugly_Kid
- Date:
- Thu May 04 13:37:26 2017 +0000
- Revision:
- 0:7e061992d951
Teste de USB_HID
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ugly_Kid | 0:7e061992d951 | 1 | #include "mbed.h" |
Ugly_Kid | 0:7e061992d951 | 2 | //#include "USBMouse.h" |
Ugly_Kid | 0:7e061992d951 | 3 | #include "USBJoystick.h" |
Ugly_Kid | 0:7e061992d951 | 4 | |
Ugly_Kid | 0:7e061992d951 | 5 | //USBMouse mouse; |
Ugly_Kid | 0:7e061992d951 | 6 | USBJoystick joystick; |
Ugly_Kid | 0:7e061992d951 | 7 | |
Ugly_Kid | 0:7e061992d951 | 8 | // Variables for Heartbeat and Status monitoring |
Ugly_Kid | 0:7e061992d951 | 9 | DigitalOut myled1(LED1); |
Ugly_Kid | 0:7e061992d951 | 10 | DigitalOut myled2(LED2); |
Ugly_Kid | 0:7e061992d951 | 11 | DigitalOut myled3(LED3); |
Ugly_Kid | 0:7e061992d951 | 12 | DigitalOut heartbeatLED(LED4); |
Ugly_Kid | 0:7e061992d951 | 13 | DigitalIn B1(p5); |
Ugly_Kid | 0:7e061992d951 | 14 | DigitalIn B2(p6); |
Ugly_Kid | 0:7e061992d951 | 15 | DigitalIn B3(p7); |
Ugly_Kid | 0:7e061992d951 | 16 | DigitalIn B4(p8); |
Ugly_Kid | 0:7e061992d951 | 17 | DigitalIn B5(p9); |
Ugly_Kid | 0:7e061992d951 | 18 | AnalogIn IN(p20); |
Ugly_Kid | 0:7e061992d951 | 19 | Ticker heartbeat; |
Ugly_Kid | 0:7e061992d951 | 20 | //Serial pc(USBTX, USBRX); // tx, rx |
Ugly_Kid | 0:7e061992d951 | 21 | |
Ugly_Kid | 0:7e061992d951 | 22 | // Heartbeat monitor |
Ugly_Kid | 0:7e061992d951 | 23 | void pulse() { |
Ugly_Kid | 0:7e061992d951 | 24 | heartbeatLED = !heartbeatLED; |
Ugly_Kid | 0:7e061992d951 | 25 | } |
Ugly_Kid | 0:7e061992d951 | 26 | |
Ugly_Kid | 0:7e061992d951 | 27 | void heartbeat_start() { |
Ugly_Kid | 0:7e061992d951 | 28 | heartbeat.attach(&pulse, 0.5); |
Ugly_Kid | 0:7e061992d951 | 29 | } |
Ugly_Kid | 0:7e061992d951 | 30 | |
Ugly_Kid | 0:7e061992d951 | 31 | void heartbeat_stop() { |
Ugly_Kid | 0:7e061992d951 | 32 | heartbeat.detach(); |
Ugly_Kid | 0:7e061992d951 | 33 | } |
Ugly_Kid | 0:7e061992d951 | 34 | |
Ugly_Kid | 0:7e061992d951 | 35 | |
Ugly_Kid | 0:7e061992d951 | 36 | int main() { |
Ugly_Kid | 0:7e061992d951 | 37 | //int16_t i = 0; |
Ugly_Kid | 0:7e061992d951 | 38 | int8_t i = 0; |
Ugly_Kid | 0:7e061992d951 | 39 | int16_t throttle = 0; |
Ugly_Kid | 0:7e061992d951 | 40 | int16_t rudder = 0; |
Ugly_Kid | 0:7e061992d951 | 41 | int16_t x = 0; |
Ugly_Kid | 0:7e061992d951 | 42 | int16_t y = 0; |
Ugly_Kid | 0:7e061992d951 | 43 | int32_t radius = 120; |
Ugly_Kid | 0:7e061992d951 | 44 | int32_t angle = 0; |
Ugly_Kid | 0:7e061992d951 | 45 | int8_t button = 0; |
Ugly_Kid | 0:7e061992d951 | 46 | int8_t hat = 0; |
Ugly_Kid | 0:7e061992d951 | 47 | int counter = 0; |
Ugly_Kid | 0:7e061992d951 | 48 | B1.mode(PullUp); |
Ugly_Kid | 0:7e061992d951 | 49 | B2.mode(PullUp); |
Ugly_Kid | 0:7e061992d951 | 50 | B3.mode(PullUp); |
Ugly_Kid | 0:7e061992d951 | 51 | B4.mode(PullUp); |
Ugly_Kid | 0:7e061992d951 | 52 | B5.mode(PullUp); |
Ugly_Kid | 0:7e061992d951 | 53 | |
Ugly_Kid | 0:7e061992d951 | 54 | // pc.printf("Hello World!\n\r"); |
Ugly_Kid | 0:7e061992d951 | 55 | |
Ugly_Kid | 0:7e061992d951 | 56 | heartbeat_start(); |
Ugly_Kid | 0:7e061992d951 | 57 | |
Ugly_Kid | 0:7e061992d951 | 58 | while (1) { |
Ugly_Kid | 0:7e061992d951 | 59 | // Basic Joystick |
Ugly_Kid | 0:7e061992d951 | 60 | // throttle = (i >> 8) & 0x00; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 61 | // rudder = (i >> 8) & 0x00; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 62 | throttle = IN.read_u16(); |
Ugly_Kid | 0:7e061992d951 | 63 | // if (throttle == 0) |
Ugly_Kid | 0:7e061992d951 | 64 | // throttle = 127; |
Ugly_Kid | 0:7e061992d951 | 65 | // else throttle = 0;// value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 66 | //printf("%d \r\n", throttle); |
Ugly_Kid | 0:7e061992d951 | 67 | rudder = i; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 68 | |
Ugly_Kid | 0:7e061992d951 | 69 | |
Ugly_Kid | 0:7e061992d951 | 70 | //button = (i >> 8) & 0x00; // value 0 .. 15, one bit per button |
Ugly_Kid | 0:7e061992d951 | 71 | //button = i; // value 0 .. 15, one bit per button |
Ugly_Kid | 0:7e061992d951 | 72 | // hat = (i >> 8) & 0x03; // value 0, 1, 2, 3 or 4 for neutral |
Ugly_Kid | 0:7e061992d951 | 73 | hat = (i >> 8) & 0x00; // value 0..7 or 8 for neutral |
Ugly_Kid | 0:7e061992d951 | 74 | //i++; |
Ugly_Kid | 0:7e061992d951 | 75 | |
Ugly_Kid | 0:7e061992d951 | 76 | //throttle = cos((double)angle*3.14/180.0)*radius; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 77 | //rudder = cos((double)angle*3.14/180.0)*radius; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 78 | |
Ugly_Kid | 0:7e061992d951 | 79 | x = cos((double)angle*3.14/180.0)*radius; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 80 | y = sin((double)angle*3.14/180.0)*radius; // value -127 .. 128 |
Ugly_Kid | 0:7e061992d951 | 81 | angle += 3; |
Ugly_Kid | 0:7e061992d951 | 82 | /* |
Ugly_Kid | 0:7e061992d951 | 83 | if (!B1){ |
Ugly_Kid | 0:7e061992d951 | 84 | //i = 1; |
Ugly_Kid | 0:7e061992d951 | 85 | button = 2; |
Ugly_Kid | 0:7e061992d951 | 86 | myled3=1; |
Ugly_Kid | 0:7e061992d951 | 87 | } |
Ugly_Kid | 0:7e061992d951 | 88 | else{ |
Ugly_Kid | 0:7e061992d951 | 89 | //i = 0; |
Ugly_Kid | 0:7e061992d951 | 90 | button = 0; |
Ugly_Kid | 0:7e061992d951 | 91 | myled3=0; |
Ugly_Kid | 0:7e061992d951 | 92 | } |
Ugly_Kid | 0:7e061992d951 | 93 | */ |
Ugly_Kid | 0:7e061992d951 | 94 | if (button == 0) |
Ugly_Kid | 0:7e061992d951 | 95 | { |
Ugly_Kid | 0:7e061992d951 | 96 | button = i; |
Ugly_Kid | 0:7e061992d951 | 97 | i++; |
Ugly_Kid | 0:7e061992d951 | 98 | } |
Ugly_Kid | 0:7e061992d951 | 99 | |
Ugly_Kid | 0:7e061992d951 | 100 | else button = 0; |
Ugly_Kid | 0:7e061992d951 | 101 | joystick.update(throttle, rudder, x, y, button, hat); |
Ugly_Kid | 0:7e061992d951 | 102 | if (counter == 50) |
Ugly_Kid | 0:7e061992d951 | 103 | { |
Ugly_Kid | 0:7e061992d951 | 104 | myled2 = !myled2; |
Ugly_Kid | 0:7e061992d951 | 105 | counter = 0; |
Ugly_Kid | 0:7e061992d951 | 106 | } |
Ugly_Kid | 0:7e061992d951 | 107 | counter++; |
Ugly_Kid | 0:7e061992d951 | 108 | wait(0.1); |
Ugly_Kid | 0:7e061992d951 | 109 | } |
Ugly_Kid | 0:7e061992d951 | 110 | |
Ugly_Kid | 0:7e061992d951 | 111 | // pc.printf("Bye World!\n\r"); |
Ugly_Kid | 0:7e061992d951 | 112 | } |