menu projet

Dependencies:   SDFileSystem SPI_TFT_ILI9341 TFT_fonts mbed

Fork of TFT_banggood by Peter Drescher

main.cpp

Committer:
JoeJoe
Date:
2015-06-23
Revision:
2:da6faa24e5b2
Parent:
1:2b041456fea2

File content as of revision 2:da6faa24e5b2:

#include "stdio.h"
#include "mbed.h"
#include "SPI_TFT_ILI9341.h"
#include "string"
#include "Arial12x12.h"
#include "Arial24x23.h"
#include "Arial28x28.h"
#include "font_big.h"
#include "SDFileSystem.h"

InterruptIn BPlus(p21);
InterruptIn BMoins(p22);    // Déclaration des Boutons poussoirs
InterruptIn BValide(p23);

char PosMenu;               // Déclaration des menus
bool MenuPrincipal;
bool ecrire;
Ticker heure;
int flip = 0;

// Pin de connection de l'écran TFT
SPI_TFT_ILI9341 TFT(p11, p12, p13, p5, p7, p6,"TFT"); //mosi,miso,sclk,cs,reset,dc

void attime()
{
    flip = !flip;
}
void trigger1()     //Bouton poussoir de gauche
{
    ecrire=0;
    if(MenuPrincipal==0) {
        if(PosMenu>0) {
            PosMenu=PosMenu-1;
            wait_ms(75);
        }
    }
}
void trigger2()     //Bouton poussoir du milieu
{
    ecrire=0;
    if(MenuPrincipal==0) {
        if(PosMenu<=1) {
            PosMenu=PosMenu+1;
            wait_ms(75);
        }
    }
}
void trigger3()     //Bouton poussoir de droite
{
    ecrire=0;
    if(MenuPrincipal==0) {
        MenuPrincipal=1;
    } else {
        MenuPrincipal=0;
        wait_ms(75);
    }
}
int main ()
{
    heure.attach(&attime, 10);
    MenuPrincipal=0;
    PosMenu=0;
    BPlus.rise(&trigger1);
    BMoins.rise(&trigger2);
    BValide.rise(&trigger3);
    set_time(456771);
    TFT.claim(stdout);
    TFT.set_orientation(3);
    TFT.background(White);    // Applique le fond de l'écran en blanc
    TFT.foreground(Black);    // Applique la police de caractère en noir
    TFT.cls();                // Réinitialise l'écran
    TFT.set_font((unsigned char*) Neu42x35);
    TFT.locate(12,1);
    TFT.printf("MENU");
    TFT.rect(5,40,826,85,Black);        // Rectangles
    TFT.rect(5,90,826,135,Black);
    TFT.rect(5,140,826,185,Black);
    TFT.rect(5,190,826,235,Black);
    while(1) {

        if(flip == 0) {
            TFT.set_font((unsigned char*) Arial28x28);
            TFT.locate(220,10);
            time_t heure=time(NULL);
            char buffer[32];
            strftime(buffer,32,"%Hh%M",localtime(&heure));
            TFT.printf("%s",buffer);
        }
        TFT.set_font((unsigned char*) Neu42x35);
        if(ecrire==0) {
            if(MenuPrincipal==0) {
                if(PosMenu==0) {             //Sélection sur CAPTEURS
                    TFT.foreground(Red);
                    TFT.locate(12,45);
                    TFT.printf("Capteurs   ");
                    TFT.foreground(Black);
                    TFT.locate(12,95);
                    TFT.printf("Mesures    ");
                    TFT.foreground(Black);
                    TFT.locate(12,145);
                    TFT.printf("Horloge    ");
                    TFT.locate(12,195);
                    TFT.printf("          ");
                }
                if(PosMenu==1) {            //Sélection sur MESURES
                    TFT.foreground(Black);
                    TFT.locate(12,45);
                    TFT.printf("Capteurs   ");
                    TFT.foreground(Red);
                    TFT.locate(12,95);
                    TFT.printf("Mesures   ");
                    TFT.foreground(Black);
                    TFT.locate(12,145);
                    TFT.printf("Horloge     ");
                    TFT.locate(12,195);
                    TFT.printf("          ");
                }
                if(PosMenu==2) {            //Sélection sur HORLOGE
                    TFT.foreground(Black);
                    TFT.locate(12,45);
                    TFT.printf("Capteurs   ");
                    TFT.foreground(Black);
                    TFT.locate(12,95);
                    TFT.printf("Mesures    ");
                    TFT.foreground(Red);
                    TFT.locate(12,145);
                    TFT.printf("Horloge     ");
                    TFT.foreground(Black);
                    TFT.locate(12,195);
                    TFT.printf("          ");
                }
            } else {
                if(PosMenu==0) {            //Sous menu de CAPTEURS
                    TFT.set_font((unsigned char*) Neu42x35);
                    TFT.foreground(Black);
                    TFT.locate(12,45);
                    TFT.printf("C1   ");
                    TFT.locate(109,45);
                    TFT.printf("C2   ");
                    TFT.locate(220,45);
                    TFT.printf("C3");
                    TFT.locate(12,95);
                    TFT.printf("C4   ");
                    TFT.locate(109,95);
                    TFT.printf("C5   ");
                    TFT.locate(220,95);
                    TFT.printf("C6");
                    TFT.locate(12,145);
                    TFT.printf("C7   ");
                    TFT.locate(109,145);
                    TFT.printf("C8   ");
                    TFT.locate(220,145);
                    TFT.printf("C9");
                    TFT.locate(12,195);
                    TFT.printf("C10");
                }
                if(PosMenu==1) {            //Sous menu de MESURES
                    TFT.foreground(Black);
                    TFT.locate(12,45);
                    TFT.printf("Temp :   ");
                    TFT.foreground(Black);
                    TFT.locate(12,95);
                    TFT.printf("Forces :    ");
                    TFT.foreground(Black);
                    TFT.locate(12,145);
                    TFT.printf("         ");
                }
                if(PosMenu==2) {            //Sous menu d'HORLOGE
                    TFT.foreground(Black);
                    TFT.locate(12,45);
                    TFT.printf("Reglages Clk");
                    TFT.foreground(Black);
                    TFT.locate(12,95);
                    TFT.printf("       ");
                    TFT.foreground(Black);
                    TFT.locate(12,145);
                    TFT.printf("         ");
                }
            }
        }
        ecrire=1;
    }
}