Programme RC test publication

Dependencies:   mbed SimpleBLE X_NUCLEO_IDB0XA1 LIS3DH_spi

main.cpp

Committer:
MaxenceGalopin
Date:
2020-01-26
Revision:
11:72c976e0d889
Parent:
10:a15e07c7ad61

File content as of revision 11:72c976e0d889:

//Includes

#include "mbed.h"
#include "SimpleBLE.h"
#include "LIS3DH.h"
#include "stdlib.h"


//Bluetooth hc05-6

#define TX D0
#define RX D1




// GPIO set

//Interrupt input

InterruptIn user1(PC_13);  //User1
InterruptIn boutton1(D3);
InterruptIn boutton2(D4);
InterruptIn event(A0);

Timer timer;

DigitalOut led1(D14);
DigitalOut transistor(D6);

//PWM output

PwmOut PWMoutput(PB_1);          //Main PWM output
PwmOut Green(PC_8);              //PWM Red LED
PwmOut Red(PC_6);                //PWM Green LED
PwmOut Blue(PC_9);               //PWM Blue LED


Serial BT(USBTX,USBRX);
//Serial pc(USBTX, USBRX);

int compteur;
bool flag = false;
float end,begin;
int message = 0;
int temps1 = 0;
string course;
char Buffer[10];
int i = 0;
int begin2 = 0;

void envoi(int message){
    BT.printf("%i\n", message);
}


void pressed(){
    led1 = !led1;
    temps1 = timer.read_ms();
    message = temps1;
    envoi(message);
    }


void skater_d()
{
    if(flag==false) {
        //  pc.printf("Ligne de depart coupee solo \n");
        if( flag == false) {
            //printf("Depart skate \n");
            begin = timer.read_ms();
            compteur=100;
            //pc.printf("                                         skater lance %.0f \n", begin);
            flag = true;
        } else if(flag == true) {
            //printf("erreur \n");
            //pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            flag = false;
        }
    }
    else if(flag==true) {
        //printf("Ligne d'arrivee coupee \n");
        if( flag == false ) {
            //printf("arrivee coupe sans depart\n");
            flag = true;
        } else if(flag == true ) {
            //printf("Arrivee skate \n");
            end = timer.read_ms();
            //Temps = end-begin;
            compteur=200;
            //wait(1);
            //pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            flag = false;
        }
    } 
}

void test_mode(char Buffer[10]){
    if(Buffer[0] == 'S'){
        //  pc.printf("mode solo \n");
        timer.reset();
        flag = false;
    }else if(Buffer[0]=='D'){
        //  pc.printf("mode duo \n");
        flag=true;
        timer.reset();
    }
    else if (Buffer[0] == 'R'){
        //  pc.printf("Reset timer \n ");
        timer.reset();
        //wait(1);
        //timer.start();
    }
    //  pc.printf(" Test \n");
}


void RXevent (){
    if(BT.readable()){
        BT.scanf("%s", &Buffer);
        wait(1);
    } 
        
    if (Buffer[0] == 'R'){
        timer.reset();
    }
    return;    
}



//Main program

int main(int, char**)
{
    transistor=1;
    timer.start();
    BT.attach(&RXevent);
    user1.fall(&pressed);
    event.fall(&pressed);
   
    while (1) {
        

        Green = 0.001;
        wait(1);
        Green = 0;
        wait(1);
        //}

    }
}