julien bitoun / Mbed 2 deprecated ProjetInfo2_Multi

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "coffre.h"
00003 
00004 
00005 
00006 
00007 // VARIABLE *****************
00008 
00009 extern PwmOut servo;
00010 extern BusIn digicode;
00011 DigitalOut led1(p17);
00012 DigitalOut led2(p18);
00013 Timer t1;
00014 Timer t2;
00015 Timer t3;
00016 int code[4]={2,1,0,3};
00017 int etat =0;
00018 int   N_precedent;
00019 int N; 
00020 Serial pc (USBTX,USBRX);
00021 
00022 
00023 
00024 
00025 // CODE ************
00026 
00027 
00028 int main()
00029 {
00030     servo.period(0.02);
00031     while(1) 
00032     {
00033         N_precedent=N;
00034         t3.start();
00035         if(t3.read()>0.1)
00036         {
00037             N=lireval();
00038             t3.reset();
00039             t3.stop();
00040         }
00041         
00042         switch(etat)
00043         {
00044             case 0:
00045                 fermer();
00046                 
00047                 if ( N_precedent==-3 and N == code[0] ) 
00048                 {
00049                     etat=1;
00050                     pc.printf("ok1\n\r");
00051                 }
00052                 if(N_precedent == -3 and N!=code[0] and N!=-3) 
00053                 {
00054                     etat=5;
00055                     t1.reset();
00056                     t1.start();
00057                     
00058                 }
00059                 break;
00060             case 1 : 
00061                 
00062                 
00063                 if ( N_precedent==-3 and N == code[1])
00064                 {
00065                     etat=2;
00066                     pc.printf("ok2\n\r");
00067                 }
00068                 
00069                 if(N_precedent == -3 and N!=code[1] and N!=-3)
00070                 {
00071                     etat=5;
00072                     t1.reset();
00073                     t1.start();
00074                 }
00075                 break;
00076             case 2 :  
00077                 
00078                 if( N_precedent==-3 and N == code[2])
00079                 {
00080                     etat=3;
00081                     pc.printf("ok3\n\r");
00082                 }
00083                 if(N_precedent == -3 and N!=code[2] and N!=-3)
00084                 {
00085                     etat=5;
00086                     t1.reset();
00087                     t1.start();
00088                 }
00089                 break;
00090             case 3 : 
00091                 if ( N_precedent==-3 and N == code[3])
00092                 {
00093                     etat=4;
00094                     pc.printf("bravo c bon msieur\n\r");
00095                     ouvrir();
00096                     wait(5);
00097                     t2.reset();
00098                     t2.start();
00099                 }
00100                 if(N_precedent == -3 and N!=code[3] and N!=-3)
00101                 {
00102                     etat=5;
00103                     t1.reset();
00104                     t1.start();
00105                 }
00106                 break;
00107                     
00108             case 4:
00109                 
00110             
00111           
00112                 if(t2.read()>5)
00113                 {
00114                     etat=0;
00115                 }
00116                 break;
00117             case 5:
00118                 if (t1.read()>1)
00119                 {
00120                     pc.printf("c faux msieur\n\r");
00121                     etat=0;
00122                 }
00123                 break;
00124             
00125             }
00126         switch(etat)
00127         {
00128            case 0:
00129                 led1.write(1);
00130                 led2.write(0);
00131                 break;
00132                 
00133             case 1:
00134                 led1.write(0);
00135                 led2.write(0);
00136                 break;
00137                 
00138             case 2:
00139                 led1.write(0);
00140                 led2.write(0);
00141                 break;
00142             case 3:
00143                 break;
00144             case 4:
00145                 led1.write(0);
00146                 led2.write(1);
00147                 break;
00148             }
00149                 
00150             
00151         }
00152     }