marc le dep

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

automatique.cpp

Committer:
Alex_mln
Date:
2018-03-29
Revision:
0:4910cdb3d377
Child:
1:59fe933886bd

File content as of revision 0:4910cdb3d377:

#include "automatique.h"
#include "capteur.h"

LCD_DISCO_F429ZI lcd3;
TS_DISCO_F429ZI ts3;
TS_StateTypeDef tsState3;
uint16_t xa, ya;

DigitalOut led1(PG_7); //lente gauche
DigitalOut led2(PB_4); //rapide

DigitalOut led3(PA_8); //lente droite
DigitalOut led4(PA_14); //rapide

DigitalOut led5(PC_12); //arrêt


int vitesse;

// Pour l'instant avec 1 capteur : ligne = avant ; blanc = arret

void detectiona(){
     xa = tsState3.X;
        ya = tsState3.Y;
        uint8_t text[7];
        sprintf((char*)text, "%d; %d", xa, ya);
        lcd3.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);   }
        
void freqled(int indice){
    if (indice==1){
        led1=!led1;
        }
    else if (indice==2){
        led2=!led2;
        }
    else if (indice==3){
        led3=!led3;
        }
    else if (indice==4){
        led4=!led4;        
        }
}  
                
        

void action(bool c1, bool c2, bool c3){
   /* led5=1;
    led1=0;
    led2=0;
    led3=0;
    led4=0;*/
    if(c1==false && c2==true && c3==false){
             led5=0;
             //clignotement normal des deux LEDs lentes
             led1=1;
             led3=1;
            // freqled(1);
            // freqled(3);
             wait(1);
             led1=0;
             led3=0;
            // freqled(1);
            // freqled(3);
             wait(1);//(10/vitesse)-(vitesse/1000));
             }// led1=0;
            // led3=0;
    else{
        led1=1;
        led2=1;
        led3=1;
        led4=1;
        led5=1; }}
    
    
    
    
    
    
    
    
    

int go_automatique(int vit){
     vitesse=vit;
    uint8_t status3 = ts3.Init(lcd3.GetXSize(), lcd3.GetYSize());
    ts3.GetState(&tsState3); 
        detectiona();
    
    
    
    
    while((xa>225 || xa<12) || (ya<78-20 || ya>288-20)){
        bool capt1=false;//code(1);
        bool capt2=code(2);
        bool capt3=false;//code(3);
        
        action(capt1,capt2,capt3);
        
      int value=afficher();
        showIntegerScreen((int)(value),1,0,RIGHT_MODE);
        showIntegerScreen(0,0,0,RIGHT_MODE);
        wait(0.2);
        
        
       
       
        
        
        
        
         ts3.GetState(&tsState3); 
        detectiona();
        
        }
        return(1);}