May not work well

Dependencies:   USBDevice_edit mbed

main.cpp

Committer:
Ugly_Kid
Date:
2017-05-04
Revision:
0:7e061992d951

File content as of revision 0:7e061992d951:

#include "mbed.h"
//#include "USBMouse.h"
#include "USBJoystick.h"

//USBMouse mouse;
USBJoystick joystick;

// Variables for Heartbeat and Status monitoring
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut heartbeatLED(LED4);
DigitalIn B1(p5);
DigitalIn B2(p6);
DigitalIn B3(p7);
DigitalIn B4(p8);
DigitalIn B5(p9);
AnalogIn IN(p20);
Ticker heartbeat;
//Serial pc(USBTX, USBRX); // tx, rx

// Heartbeat monitor
void pulse() {
  heartbeatLED = !heartbeatLED;
}

void heartbeat_start() {
  heartbeat.attach(&pulse, 0.5);
}

void heartbeat_stop() {
  heartbeat.detach();
}


int main() {
    //int16_t i = 0;
    int8_t i = 0;
    int16_t throttle = 0;
    int16_t rudder = 0;    
    int16_t x = 0;
    int16_t y = 0;
    int32_t radius = 120;
    int32_t angle = 0;
    int8_t button = 0;    
    int8_t hat = 0;    
    int counter = 0;
        B1.mode(PullUp);
        B2.mode(PullUp);
        B3.mode(PullUp);
        B4.mode(PullUp);
        B5.mode(PullUp);
    
//    pc.printf("Hello World!\n\r");

    heartbeat_start();

    while (1) {
        // Basic Joystick
//        throttle = (i >> 8) & 0x00; // value -127 .. 128
//        rudder =   (i >> 8) & 0x00;   // value -127 .. 128        
        throttle = IN.read_u16();
       // if (throttle == 0)
       //     throttle = 127;
       // else throttle = 0;// value -127 .. 128
        //printf("%d \r\n", throttle);
        rudder =   i;   // value -127 .. 128        

        
        //button =   (i >> 8) & 0x00;   // value    0 .. 15, one bit per button     
        //button =   i;   // value    0 .. 15, one bit per button             
//      hat    =   (i >> 8) & 0x03;   // value 0, 1, 2, 3 or 4 for neutral 
        hat    =   (i >> 8) & 0x00;   // value 0..7 or 8 for neutral         
        //i++;        
        
        //throttle = cos((double)angle*3.14/180.0)*radius;  // value -127 .. 128
        //rudder = cos((double)angle*3.14/180.0)*radius;  // value -127 .. 128
        
        x = cos((double)angle*3.14/180.0)*radius;  // value -127 .. 128
        y = sin((double)angle*3.14/180.0)*radius;  // value -127 .. 128
        angle += 3;
        /*
         if (!B1){
            //i = 1;
            button = 2;
            myled3=1;
            }
        else{
            //i = 0;
            button = 0;
            myled3=0;            
            }
 */
        if (button == 0)
            {
                button = i;
                i++;
                }
      
        else button = 0;
        joystick.update(throttle, rudder, x, y, button, hat);
        if (counter == 50)
            {
                myled2 = !myled2;
                counter = 0;
                }
        counter++;
        wait(0.1);
    }
    
 //   pc.printf("Bye World!\n\r");                           
}