Dependencies:   mbed

main.cpp

Committer:
Ridaz
Date:
2015-04-14
Revision:
1:0f2ba28c2e70
Parent:
0:163dfb02ed36

File content as of revision 1:0f2ba28c2e70:

#include "mbed.h"
#include "fonction.h"
DigitalOut myled(LED1);
DigitalOut myled2(LED4);
DigitalOut myled3(LED3);
BusIn bus(p19, p18,p17,p16,p15,p14,p13,p12,p11,p10,p9,p8);
int etat = 0;
int code[] = {1, 2, 3, 4};
int nPrecedent = -3;
int n = -3;
int main()
{
    while(1) {
        nPrecedent = n;
        n = bus.read();
        n = bitToInt(n);
        switch (etat) {
            case ETAT0:
                myled = 1;
                myled2 = 0;
                myled3  = 0;
                if (n == code[0] && nPrecedent == -3 )  {
                    etat =  NB1;

                    wait(0.2);
                }
                break;

            case NB1:
                            myled = 0;
                myled2 = 0;
                myled3  = 0;
                if (n == code[1] && nPrecedent == -3) {
                    etat = NB2;
                    myled = 0;
                    wait(0.2);
                } else if (n != -3)
                    etat =  ERREUR;
                break;

            case NB2:
                if (n == code[2] && nPrecedent == -3 ) {
                    etat = NB3;
                    wait(0.2);
                }

                else if (n != -3)
                    etat = ERREUR;
                break;

            case NB3:
                if (n == code[3] && nPrecedent == -3) {
                    etat = FINAL;
                    wait(0.2);
                } else if (n != -3)
                    etat = ERREUR;
                break;

            case FINAL:
                etat = ETAT0;
                myled2 = 1;
                wait(5);
                break;
            case ERREUR:
                myled3 = 1;
                wait(1);
                myled2 = 0;
                etat  = ETAT0;
        }
        printf("etat =  %d | n = %d | nPrecedent = %d\n", etat, n, nPrecedent);
    }
}