TP

Dependencies:   mbed

exercice3.cpp

Committer:
jomfec
Date:
2016-05-02
Revision:
0:2de5803e5d23

File content as of revision 0:2de5803e5d23:

#include "mbed.h"
#include "math.h"

#define T1 7
#define T2 1
#define T3 0
#define T4 6


BusIn clavier(p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22);
int lire_clavier();

int main()
{

    int n0,n;
    int etat=0;
    clavier.mode(PullDown);
    while(1)

    {
        n0=n
        n=lire_clavier();

        switch(etat) 
        {
           case 0:  if(n0==-3 && n==T1)           etat=1;
                    if(n0==-3 && n!=T1 && n!==-3) etat=5; break; 
                    
           case 1:  if(n0==-3 && n==T2)           etat=2;
                    if(n0==-3 && n!=T2 && n!==-3) etat=5; break; 
                    
           case 2:  if(n0==-3 && n==T3)           etat=3;
                    if(n0==-3 && n!=T3 && n!==-3) etat=5; break; 
                    
           case 3:  if(n0==-3 && n==T4)           etat=4;
                    if(n0==-3 && n!=T4 && n!==-3) etat=5; break; 
                    
           case 4:                               etat=0; break; 
           
           case 5:                               etat=0; break;

        }
        
        switch(etat) 
    
        {
        
           case 0:  printf("LED VERDE ALLUMEE") ; break; 
                    
           case 1:  printf("ETEINTE") ; break; 
                    
           case 2:  printf("ETEINTE") ; break; 
                    
           case 3:  printf("ETEINTE") ; break; 
                    
           case 4:  printf("LED ROUGE ALLUMEE"); wait(5) ; break; 
           
           case 5:  printf("ERREUR")wait(1) ; break;

      }
}




int lire_clavier()
{
    int i,n;
    i=clavier.read();

    if(i==1)     n=1;
    else if(i==2)     n=2;
    else if(i==4)     n=3;
    else if(i==8)     n=4;
    else if(i==16)    n=5;
    else if(i==32)    n=6;
    else if(i==64)    n=7;
    else if(i==128)   n=8;
    else if(i==256)   n=9;
    else if(i==512)   n=0;
    else if(i==1024)  n=-1;
    else if(i==2048)  n=-2;
    else         n=-3;

    return(n);
}