May not work well

Dependencies:   USBDevice_edit mbed

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?

UserRevisionLine numberNew 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 }