menu projet

Dependencies:   SDFileSystem SPI_TFT_ILI9341 TFT_fonts mbed

Fork of TFT_banggood by Peter Drescher

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "stdio.h"
00002 #include "mbed.h"
00003 #include "SPI_TFT_ILI9341.h"
00004 #include "string"
00005 #include "Arial12x12.h"
00006 #include "Arial24x23.h"
00007 #include "Arial28x28.h"
00008 #include "font_big.h"
00009 #include "SDFileSystem.h"
00010 
00011 InterruptIn BPlus(p21);
00012 InterruptIn BMoins(p22);    // Déclaration des Boutons poussoirs
00013 InterruptIn BValide(p23);
00014 
00015 char PosMenu;               // Déclaration des menus
00016 bool MenuPrincipal;
00017 bool ecrire;
00018 Ticker heure;
00019 int flip = 0;
00020 
00021 // Pin de connection de l'écran TFT
00022 SPI_TFT_ILI9341 TFT(p11, p12, p13, p5, p7, p6,"TFT"); //mosi,miso,sclk,cs,reset,dc
00023 
00024 void attime()
00025 {
00026     flip = !flip;
00027 }
00028 void trigger1()     //Bouton poussoir de gauche
00029 {
00030     ecrire=0;
00031     if(MenuPrincipal==0) {
00032         if(PosMenu>0) {
00033             PosMenu=PosMenu-1;
00034             wait_ms(75);
00035         }
00036     }
00037 }
00038 void trigger2()     //Bouton poussoir du milieu
00039 {
00040     ecrire=0;
00041     if(MenuPrincipal==0) {
00042         if(PosMenu<=1) {
00043             PosMenu=PosMenu+1;
00044             wait_ms(75);
00045         }
00046     }
00047 }
00048 void trigger3()     //Bouton poussoir de droite
00049 {
00050     ecrire=0;
00051     if(MenuPrincipal==0) {
00052         MenuPrincipal=1;
00053     } else {
00054         MenuPrincipal=0;
00055         wait_ms(75);
00056     }
00057 }
00058 int main ()
00059 {
00060     heure.attach(&attime, 10);
00061     MenuPrincipal=0;
00062     PosMenu=0;
00063     BPlus.rise(&trigger1);
00064     BMoins.rise(&trigger2);
00065     BValide.rise(&trigger3);
00066     set_time(456771);
00067     TFT.claim(stdout);
00068     TFT.set_orientation(3);
00069     TFT.background(White);    // Applique le fond de l'écran en blanc
00070     TFT.foreground(Black);    // Applique la police de caractère en noir
00071     TFT.cls();                // Réinitialise l'écran
00072     TFT.set_font((unsigned char*) Neu42x35);
00073     TFT.locate(12,1);
00074     TFT.printf("MENU");
00075     TFT.rect(5,40,826,85,Black);        // Rectangles
00076     TFT.rect(5,90,826,135,Black);
00077     TFT.rect(5,140,826,185,Black);
00078     TFT.rect(5,190,826,235,Black);
00079     while(1) {
00080 
00081         if(flip == 0) {
00082             TFT.set_font((unsigned char*) Arial28x28);
00083             TFT.locate(220,10);
00084             time_t heure=time(NULL);
00085             char buffer[32];
00086             strftime(buffer,32,"%Hh%M",localtime(&heure));
00087             TFT.printf("%s",buffer);
00088         }
00089         TFT.set_font((unsigned char*) Neu42x35);
00090         if(ecrire==0) {
00091             if(MenuPrincipal==0) {
00092                 if(PosMenu==0) {             //Sélection sur CAPTEURS
00093                     TFT.foreground(Red);
00094                     TFT.locate(12,45);
00095                     TFT.printf("Capteurs   ");
00096                     TFT.foreground(Black);
00097                     TFT.locate(12,95);
00098                     TFT.printf("Mesures    ");
00099                     TFT.foreground(Black);
00100                     TFT.locate(12,145);
00101                     TFT.printf("Horloge    ");
00102                     TFT.locate(12,195);
00103                     TFT.printf("          ");
00104                 }
00105                 if(PosMenu==1) {            //Sélection sur MESURES
00106                     TFT.foreground(Black);
00107                     TFT.locate(12,45);
00108                     TFT.printf("Capteurs   ");
00109                     TFT.foreground(Red);
00110                     TFT.locate(12,95);
00111                     TFT.printf("Mesures   ");
00112                     TFT.foreground(Black);
00113                     TFT.locate(12,145);
00114                     TFT.printf("Horloge     ");
00115                     TFT.locate(12,195);
00116                     TFT.printf("          ");
00117                 }
00118                 if(PosMenu==2) {            //Sélection sur HORLOGE
00119                     TFT.foreground(Black);
00120                     TFT.locate(12,45);
00121                     TFT.printf("Capteurs   ");
00122                     TFT.foreground(Black);
00123                     TFT.locate(12,95);
00124                     TFT.printf("Mesures    ");
00125                     TFT.foreground(Red);
00126                     TFT.locate(12,145);
00127                     TFT.printf("Horloge     ");
00128                     TFT.foreground(Black);
00129                     TFT.locate(12,195);
00130                     TFT.printf("          ");
00131                 }
00132             } else {
00133                 if(PosMenu==0) {            //Sous menu de CAPTEURS
00134                     TFT.set_font((unsigned char*) Neu42x35);
00135                     TFT.foreground(Black);
00136                     TFT.locate(12,45);
00137                     TFT.printf("C1   ");
00138                     TFT.locate(109,45);
00139                     TFT.printf("C2   ");
00140                     TFT.locate(220,45);
00141                     TFT.printf("C3");
00142                     TFT.locate(12,95);
00143                     TFT.printf("C4   ");
00144                     TFT.locate(109,95);
00145                     TFT.printf("C5   ");
00146                     TFT.locate(220,95);
00147                     TFT.printf("C6");
00148                     TFT.locate(12,145);
00149                     TFT.printf("C7   ");
00150                     TFT.locate(109,145);
00151                     TFT.printf("C8   ");
00152                     TFT.locate(220,145);
00153                     TFT.printf("C9");
00154                     TFT.locate(12,195);
00155                     TFT.printf("C10");
00156                 }
00157                 if(PosMenu==1) {            //Sous menu de MESURES
00158                     TFT.foreground(Black);
00159                     TFT.locate(12,45);
00160                     TFT.printf("Temp :   ");
00161                     TFT.foreground(Black);
00162                     TFT.locate(12,95);
00163                     TFT.printf("Forces :    ");
00164                     TFT.foreground(Black);
00165                     TFT.locate(12,145);
00166                     TFT.printf("         ");
00167                 }
00168                 if(PosMenu==2) {            //Sous menu d'HORLOGE
00169                     TFT.foreground(Black);
00170                     TFT.locate(12,45);
00171                     TFT.printf("Reglages Clk");
00172                     TFT.foreground(Black);
00173                     TFT.locate(12,95);
00174                     TFT.printf("       ");
00175                     TFT.foreground(Black);
00176                     TFT.locate(12,145);
00177                     TFT.printf("         ");
00178                 }
00179             }
00180         }
00181         ecrire=1;
00182     }
00183 }