tito tito / Mbed 2 deprecated TP4-DigitCode

Dependencies:   mbed

Fork of DigitCode by Adrien Audouard

Committer:
pierrick
Date:
Thu Jun 11 07:50:16 2015 +0000
Revision:
2:03518f08ccc0
Parent:
1:0f2ba28c2e70
digicode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ridaz 0:163dfb02ed36 1 #include "mbed.h"
Ridaz 0:163dfb02ed36 2 #include "fonction.h"
pierrick 2:03518f08ccc0 3 DigitalOut myledred(p21);
pierrick 2:03518f08ccc0 4 DigitalOut myledred2(p22);
pierrick 2:03518f08ccc0 5 DigitalOut myledgreen(p23);
Ridaz 0:163dfb02ed36 6 BusIn bus(p19, p18,p17,p16,p15,p14,p13,p12,p11,p10,p9,p8);
Ridaz 0:163dfb02ed36 7 int etat = 0;
Ridaz 0:163dfb02ed36 8 int code[] = {1, 2, 3, 4};
Ridaz 0:163dfb02ed36 9 int nPrecedent = -3;
Ridaz 0:163dfb02ed36 10 int n = -3;
Ridaz 0:163dfb02ed36 11 int main()
Ridaz 0:163dfb02ed36 12 {
Ridaz 0:163dfb02ed36 13 while(1) {
Ridaz 0:163dfb02ed36 14 nPrecedent = n;
Ridaz 0:163dfb02ed36 15 n = bus.read();
Ridaz 0:163dfb02ed36 16 n = bitToInt(n);
Ridaz 0:163dfb02ed36 17 switch (etat) {
Ridaz 0:163dfb02ed36 18 case ETAT0:
pierrick 2:03518f08ccc0 19 myledred = 1;
pierrick 2:03518f08ccc0 20 myledred2 = 0;
pierrick 2:03518f08ccc0 21 myledgreen = 0;
Ridaz 0:163dfb02ed36 22 if (n == code[0] && nPrecedent == -3 ) {
Ridaz 0:163dfb02ed36 23 etat = NB1;
Ridaz 1:0f2ba28c2e70 24
Ridaz 0:163dfb02ed36 25 wait(0.2);
Ridaz 0:163dfb02ed36 26 }
Ridaz 0:163dfb02ed36 27 break;
Ridaz 0:163dfb02ed36 28
Ridaz 0:163dfb02ed36 29 case NB1:
pierrick 2:03518f08ccc0 30 myledred = 0;
pierrick 2:03518f08ccc0 31 myledred2 = 0;
pierrick 2:03518f08ccc0 32 myledgreen = 0;
Ridaz 0:163dfb02ed36 33 if (n == code[1] && nPrecedent == -3) {
Ridaz 0:163dfb02ed36 34 etat = NB2;
pierrick 2:03518f08ccc0 35 myledred = 0;
Ridaz 0:163dfb02ed36 36 wait(0.2);
Ridaz 0:163dfb02ed36 37 } else if (n != -3)
Ridaz 1:0f2ba28c2e70 38 etat = ERREUR;
Ridaz 0:163dfb02ed36 39 break;
Ridaz 0:163dfb02ed36 40
Ridaz 0:163dfb02ed36 41 case NB2:
Ridaz 0:163dfb02ed36 42 if (n == code[2] && nPrecedent == -3 ) {
Ridaz 0:163dfb02ed36 43 etat = NB3;
Ridaz 0:163dfb02ed36 44 wait(0.2);
Ridaz 0:163dfb02ed36 45 }
Ridaz 0:163dfb02ed36 46
Ridaz 0:163dfb02ed36 47 else if (n != -3)
Ridaz 1:0f2ba28c2e70 48 etat = ERREUR;
Ridaz 0:163dfb02ed36 49 break;
Ridaz 0:163dfb02ed36 50
Ridaz 0:163dfb02ed36 51 case NB3:
Ridaz 0:163dfb02ed36 52 if (n == code[3] && nPrecedent == -3) {
Ridaz 0:163dfb02ed36 53 etat = FINAL;
Ridaz 0:163dfb02ed36 54 wait(0.2);
Ridaz 0:163dfb02ed36 55 } else if (n != -3)
Ridaz 1:0f2ba28c2e70 56 etat = ERREUR;
Ridaz 0:163dfb02ed36 57 break;
Ridaz 0:163dfb02ed36 58
Ridaz 0:163dfb02ed36 59 case FINAL:
Ridaz 0:163dfb02ed36 60 etat = ETAT0;
pierrick 2:03518f08ccc0 61 myledred2 = 1;
Ridaz 0:163dfb02ed36 62 wait(5);
Ridaz 0:163dfb02ed36 63 break;
Ridaz 1:0f2ba28c2e70 64 case ERREUR:
pierrick 2:03518f08ccc0 65 myledgreen = 1;
Ridaz 1:0f2ba28c2e70 66 wait(1);
pierrick 2:03518f08ccc0 67 myledred2 = 0;
Ridaz 1:0f2ba28c2e70 68 etat = ETAT0;
Ridaz 0:163dfb02ed36 69 }
Ridaz 0:163dfb02ed36 70 printf("etat = %d | n = %d | nPrecedent = %d\n", etat, n, nPrecedent);
Ridaz 0:163dfb02ed36 71 }
Ridaz 0:163dfb02ed36 72 }