IHM com 4 botões e todas as telas de pontos

Dependencies:   TextLCD mbed

Fork of Menu_IHM by Rodrigo Lino

teste.cpp

Committer:
Lucarn
Date:
2018-05-09
Revision:
8:bd5509788843
Parent:
7:a550ec99045b
Child:
9:d9148b367fd9

File content as of revision 8:bd5509788843:

/* Hello World! for the TextLCD Enhanced Library*/

#include "mbed.h"
#include "TextLCD.h"
#define apertado 0
#define solto 1

//#include "TextLCDScroll.h"

DigitalIn button1(D5);
DigitalIn button2(D4);
DigitalIn button3(D6);
DigitalIn button4(D7);

DigitalOut led(LED2);
 
// Host PC Communication channels
Serial pc(USBTX, USBRX); // tx, rx
 
// I2C Communication
I2C i2c_lcd(D14,D15); // SDA, SCL


TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD20x4);                  // I2C exp: I2C bus, PCF8574 Slaveaddress, LCD Type

bool previous1=0, previous2=0;
int menu=0;

void aumenta_menu(){
    menu = menu + 1;
    //printf("menu %d \r\n",menu);
   
}
    
void diminui_menu()
{
    menu = menu - 1;  
   // printf("menu %d \r\n",menu);  
     
}
    
    
int main() {   

    //button1.fall(&aumenta_menu);
    //button2.fall(&diminui_menu);
    
    lcd.setBacklight(TextLCD::LightOn);
    lcd.setCursor(TextLCD::CurOff_BlkOff);
 
    while(1){
        
        if (menu<0){
            menu=0;
            printf("menu %d \r\n",menu);  
        }
        if (menu>6){
        menu=6;
        printf("menu %d \r\n",menu);  
        }
        
        while ((menu==0)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
            lcd.setAddress(3,0);
            lcd.printf("MENU PRINCIPAL");
            //lcd.setAddress(0,1);
            //lcd.printf("SELECIONE UMA FUNCAO ");
            lcd.setAddress(0,2);
            lcd.printf("1-SALVAR PONTOS");
            lcd.setAddress(0,3);
            lcd.printf("2-INICIAR PROGRAMA");
            if(button1==apertado)
            {menu+=1;}
            if(button2==apertado)
            {menu-=1;}
           /* if(button3==apertado)
            {menu=0;}
            if(button4==apertado)
            {menu=0;}*/
        }
        lcd.cls();
        while ((menu==1)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
            //lcd.setAddress(0,0);
            //lcd.printf("SELECIONE O PONTO 1"); // Ponto 1
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,1);
            lcd.printf("1-SALVAR PONTO 1");
            lcd.setAddress(0,2);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,3);
            lcd.printf("3-CANCELAR OPERACAO");
           // previous1 = 1;
            printf("dentro do menu1\r\n");
            if(button1==apertado)
            {menu+=1;}
            if(button2==apertado)
            {menu-=1;}
            if(button3==apertado)
            {menu=0;}
           /* if(button4==apertado)
            {menu=1;}*/
        }
        lcd.cls();
        while ((menu==2)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
            //lcd.setAddress(0,0);
            //lcd.printf("SELECIONE O PONTO 2"); // Ponto 2
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,1);
            lcd.printf("1-SALVAR PONTO 2");
            lcd.setAddress(0,2);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,3);
            lcd.printf("3-CANCELAR OPERACAO");
           // previous1 = 1;
            printf("dentro do menu2\r\n");   
            if(button1==apertado)
            {menu+=1;}   
            if(button2==apertado)
            {menu-=1;}
            if(button3==apertado)
            {menu=1;}
           // if(button4==apertado)
            //{menu=0;}
        }
        lcd.cls();
        while ((menu==3)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
           // lcd.setAddress(0,0);
            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,0);
            lcd.printf("1-SALVAR PONTO 3");
            lcd.setAddress(0,1);
            lcd.printf("2-voltar");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR OPERACAO");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            //previous1 = 1;
            printf("dentro do menu3\r\n");   
            if(button1==apertado)
            {menu+=1;}   
            if(button2==apertado)
            {menu-=1;}
            if(button3==apertado)
            {menu=0;}
            if(button4==apertado)
            {menu=6;}
        }
        lcd.cls();
        while ((menu==4)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
           // lcd.setAddress(0,0);
            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,0);
            lcd.printf("1-SALVAR PONTO 4");
            lcd.setAddress(0,1);
            lcd.printf("2-voltar");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR OPERACAO");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            //previous1 = 1;
            printf("dentro do menu3\r\n");   
            if(button1==apertado)
            {menu+=1;}   
            if(button2==apertado)
            {menu-=1;}
            if(button3==apertado)
            {menu=0;}
            if(button4==apertado)
            {menu=6;}
        }
        lcd.cls();
        while ((menu==5)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
           // lcd.setAddress(0,0);
            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,0);
            lcd.printf("1-SALVAR PONTO 5");
            lcd.setAddress(0,1);
            lcd.printf("2-voltar");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR OPERACAO");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            //previous1 = 1;
            printf("dentro do menu3\r\n");   
            if(button1==apertado)
            {menu+=1;}   
            if(button2==apertado)
            {menu-=1;}
            if(button3==apertado)
            {menu=0;}
            if(button4==apertado)
            {menu=6;}
        }
        lcd.cls();
        while ((menu==6)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,0);
            lcd.printf("Pontos salvos!");
            lcd.setAddress(0,2);
            lcd.printf("1-Voltar ao menu");
            lcd.setAddress(0,3);
            lcd.printf("2-ressalvar pontos");
            printf("dentro do menu4\r\n");
            if(button1==apertado)
            {menu=0;}   
            if(button2==apertado)
            {menu=1;}
        }
        lcd.cls();
        
    }
}