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:
10:1c4ab7bc50b7
Parent:
9:d9148b367fd9
Child:
11:0cc3113c9ca8

File content as of revision 10:1c4ab7bc50b7:


#include "mbed.h"
#include "TextLCD.h"
#define apertado 0
#define solto 1
 
 
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
 
int menu=0;
float x=420.69, y=420.69, z=420.69;
    
    
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,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,0);
            lcd.printf("1-SALVAR PONTO 1");
            lcd.setAddress(0,1);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR ");
            lcd.setAddress(11,1);
            lcd.printf("X:%.2f",x);
            lcd.setAddress(11,2);
            lcd.printf("Y:%.2f",y);
            lcd.setAddress(11,3);
            lcd.printf("Z:%.2f",z);
           // 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
            //x=x+0.42;
            //y=y+0.17;
            //z=z+0.21;
            lcd.setCursor(TextLCD::CurOff_BlkOff);
            lcd.setAddress(0,0);
            lcd.printf("1-SALVAR PONTO 2");
            lcd.setAddress(0,1);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            lcd.setAddress(11,1);
            lcd.printf("X:%.2f",x);
            lcd.setAddress(11,2);
            lcd.printf("Y:%.2f",y);
            lcd.setAddress(11,3);
            lcd.printf("Z:%.2f",z);
           // 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=6;}
        }
        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
            //x=x+0.42;
            //y=y+0.17;
            //z=z+0.21;
            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");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            lcd.setAddress(11,1);
            lcd.printf("X:%.2f",x);
            lcd.setAddress(11,2);
            lcd.printf("Y:%.2f",y);
            lcd.setAddress(11,3);
            lcd.printf("Z:%.2f",z);
            //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 4");
            lcd.setAddress(0,1);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            lcd.setAddress(11,1);
            lcd.printf("X:%.2f",x);
            lcd.setAddress(11,2);
            lcd.printf("Y:%.2f",y);
            lcd.setAddress(11,3);
            lcd.printf("Z:%.2f",z);
            //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 5");
            lcd.setAddress(0,1);
            lcd.printf("2-VOLTAR");
            lcd.setAddress(0,2);
            lcd.printf("3-CANCELAR");
            lcd.setAddress(0,3);
            lcd.printf("4-CONCLUIR");
            lcd.setAddress(11,1);
            lcd.printf("X:%.2f",x);
            lcd.setAddress(11,2);
            lcd.printf("Y:%.2f",y);
            lcd.setAddress(11,3);
            lcd.printf("Z:%.2f",z);
            //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(3,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();
        
    }
}