Bonjour, ce code est pour Nathan Juranville , désolé pour le mail

Dependencies:   mbed

main_2_1.cpp

Committer:
Nthnthj
Date:
2019-11-20
Revision:
0:6e18e2969238

File content as of revision 0:6e18e2969238:

#include "mbed.h"

InterruptIn my_button(USER_BUTTON);
//PwmOut my_pwm(D3);
DigitalOut myled(LED1);
Serial pc(USBTX, USBRX); // tx, rx terminal
Timer timer;
Timer timer2;
InterruptIn event(A0);
InterruptIn event2(A1);
//DigitalOut laser(D3);

bool flag= false;
bool flag2= false;
bool duo = false ;
bool pass1=  false;
bool pass2= false;
float begin, end;
float debut2, fin1, fin2;

void skater_d()
{

    if(duo == false) {
        printf("Ligne de depart coupee solo \n");
        if( flag == false && flag2 == false ) {
            printf("Depart skate \n");
            begin = timer.read_ms();
            pc.printf("                                         skater lance %.0f \n", begin);
            flag = true;
            flag2= false;
        } else if(flag == true && flag2 == true) {
            printf("erreur \n");
            //end = timer.read_ms();
            //pc.printf("                     skater arrive %.0f \n", end);
            pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            flag = false;
        }

    }

    else if(duo == true) {
        printf("Ligne de depart coupee duo \n");
        if(pass1 == false) {
            printf("arrive skate 1 duo \n");
            fin1 = timer2.read_ms();
            //pc.printf("                                         skater lance %.0f \n", begin);
            pass1 = true;
        } else if(pass1 == true) {
            printf("ligne 1 deja coupee duo \n");
            //end = timer.read_ms();
            //pc.printf("                     skater arrive %.0f \n", end);
            //pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            //flag = false;
        }



    }
    if(pass1 == true && pass2== true ) {
        printf("resultats :  skater1 =  %.0f  ,     skater2 = %.0f   . \n", fin1-debut2, fin2-debut2);
        pass1 =false;
        pass2 =false;
        debut2= timer2.read_ms();
    }



}


void skater_f()
{
    if(duo == false) {

        printf("Ligne d'arrivee coupee \n");
        if( flag == false && flag2 == true) {
            printf("arrivee coupe sans depart\n");
            //begin = timer.read_ms();
            //pc.printf("                                         skater arret a %.0f \n", begin);
            flag = true;
        } else if(flag == true && flag2 ==false ) {
            printf("Arrivee skate \n");
            end = timer.read_ms();
            //pc.printf("                     skater arrive %.0f \n", end);
            pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            flag = false;
            flag2=false;
        }

    } else if(duo == true) {
        printf("Ligne 2 de depart coupee duo \n");
        if(pass2 == false) {
            printf("arrive skate 2 duo \n");
            fin2 = timer2.read_ms();
            //pc.printf("                                         skater lance %.0f \n", begin);
            pass2 = true;


        } else if(pass2 == true) {
            printf("ligne 2 deja coupee duo \n");
            //end = timer.read_ms();
            //pc.printf("                     skater arrive %.0f \n", end);
            //pc.printf("                                                                      Temps du skater : %.0f \n", end-begin);
            //flag = false;
        }

        //printf("resultats :  skater1 =  %.0f  ,     skater2 = %.0f   . \n", fin1-debut2, fin2-debut2);

    } 
    if(pass1 == true && pass2== true ) {
        printf("resultats :  skater1 =  %.0f  ,     skater2 = %.0f   . \n", fin1-debut2, fin2-debut2);
        pass1 =false;
        pass2 =false;
        debut2= timer2.read_ms();
    }
}

void pressed() {
    /*
    if(duo == false){
        //pc.printf("rapport cyclique : 0.5 ");
        // pc.scanf("%f", &valeur_pwm);
        //my_pwm.write(0.5);
        //my_pwm.period_ms(500);
        pc.printf("choix de course : solo \n");
        //laser=1;
        wait(0.05);
    }
    else if (duo == true){
        //pc.printf("rapport cyclique : 0 ");
        // pc.scanf("%f", &valeur_pwm);
        //my_pwm.write(0);
        //my_pwm.period_ms(500);
        pc.printf("choix de course : duo \n");
        //laser=0;
        wait(0.05);
        timer2.start();
        debut2= timer2.read_ms();
    }
    //test=my_pwm.read();
    //pc.printf("%f", test);
    */
    duo = !duo ;
    
}


/*
void choix() {
    char cValue;
    pc.printf("Press '1' to go solo, '0' to go duo \n");

        char c = pc.scanf("%c", &cValue); // Read hyperterminal
        if (c == '0') {
            duo = true; // OFF
            pc.printf("choix de course : duo \n");
        }
        if (c == '1') {
            duo = false; // ON
            pc.printf("choix de course : solo \n");
        }
    }

*/

int main()
{

    //duo=false;

    my_button.fall(&pressed);
    timer.start();
    timer2.start();
    event.fall(&skater_d);
    event2.fall(skater_f);


    while(1) {
    }
}