Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SDFileSystemSD TextLCD
Fork of TextLCD_HelloWorld2 by
main.cpp
- Committer:
- claraluques
- Date:
- 2018-05-29
- Revision:
- 36:12d202855231
- Parent:
- 35:11e3f3c8cb4e
- Child:
- 39:fbad08986621
File content as of revision 36:12d202855231:
/*CÓDIGO PARA LCD MENU HELLEN - GRUPO T*/
#include "mbed.h"
#include "TextLCD.h"
#include "SDFileSystem.h"
#include "string"
#include "vector"
Timer timer;
Timer timer2;
Timer enter_debounce_timer;
Timer cima_debounce_timer;
Timer baixo_debounce_timer;
Timer tpontinhos;
// Host PC Communication channels
Serial pc(USBTX, USBRX); // tx, rx //não apagar
//I2C Communication
I2C i2c_lcd(D14,D15); // SDA, SCL //não apagar
//Botão push
InterruptIn botao_enter(D13);
InterruptIn botao_cima(D12);
InterruptIn botao_baixo(D9);
//LCD instantiation
TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD20x4); //não apagar
//variáveis int
int bot_enter = 0;
int bot_cima = 0;
int bot_baixo = 0;
int penter = 1;
int pcima = 1;
int pbaixo = 1;
int cola;
int exec;
int select = 0;
int pontos = 0;
int salvar = 0;
int maxpontos = 100;
int home;
int coluna = 1;
int contador = 0;
int sair = 0;
int voltar = 0;
int quebrar = 0;
int f = 0;
int limpar_cola = 0;
//variáveis float
float cx = 120.45;
float cy = 457.85;
float cz = 782.65;
float cx_salva;
float cy_salva;
float cz_salva;
//funções interrupt
void botenter_press(void);
void botcima_press(void);
void botbaixo_press(void);
void botenter_release(void);
void botcima_release(void);
#include "classes.h"
Menu::Menu(){ //não apagar
func = 0;
}
Menu menu;
int main () {
lcd.setBacklight(TextLCD::LightOn); //liga backlight
lcd.setCursor(TextLCD::CurOff_BlkOff); //define tipo de cursor
botao_enter.fall(&botenter_press); //chama função botao enter
botao_cima.fall(&botcima_press); //chama função botao para cima
botao_baixo.fall(&botbaixo_press); //chama função bota para baixo
botao_enter.rise(&botenter_release); //chama função ler timer
botao_cima.rise(&botcima_release);
enter_debounce_timer.start(); // não apagar
cima_debounce_timer.start();
baixo_debounce_timer.start();
while(1){
switch(menu.func){ //faz com que as telas sejam iniciadas
case 0: menu.inicializar(); break;
case 1: menu.menuprincipal(); break;
case 2: menu.jog(); break;
case 3: menu.automatico(); break;
case 4: menu.config(); break;
case 5: menu.telasalvamento(); break;
case 6: menu.telacola(); break;
case 7: menu.executarprograma(); break;
case 8: menu.telazerar(); break;
case 9: menu.executando(); break;
case 10: menu.zerado(); break;
case 11: menu.finalizado(); break;
case 12: menu.limpeza_livre(); break;
case 14: menu.limparcola(); break;
case 15: menu.gohome(); break;
case 16: menu.limitepontos(); break;
case 17: menu.salvarprog(); break;
case 18: menu.ctzhome(); break;
case 19: menu.origem(); break;
case 20: menu.nomeprog(); break;
case 21: menu.mudar_nome(); break;
case 22: menu.salva2(); break;
case 23: menu.deletepoint(); break;
case 24: menu.sempontos(); break;
case 25: menu.salvando_arq(); break;
case 26: menu.exec_auto(); break;
case 27: menu.indo_limpeza(); break;
case 28: menu.chegou_limpeza(); break;
case 29: menu.limpando(); break;
case 30: menu.limpeza_completa(); break;
}
}
}
//função interrupt botão enter
void botenter_press(void){
printf("ENTER!\n\r");
//printf("timer: %.3f\n\r", enter_debounce_timer.read());
if(enter_debounce_timer.read()>0.2){
penter = bot_enter;
bot_enter = !bot_enter;
//printf("enter high, timer reset FALL\n\r");
timer.reset();
timer.start();
enter_debounce_timer.reset();
enter_debounce_timer.start();
}
}
//função interrupt botão cima
void botcima_press(void){
printf("CIMA!\n\r");
//printf("timer: %.3f\n\r", cima_debounce_timer.read());
if(cima_debounce_timer.read()>0.2){
pcima = bot_cima;
bot_cima = !bot_cima;
timer2.reset();
timer2.start();
cima_debounce_timer.reset();
cima_debounce_timer.start();
}
}
//função interrupt botão baixo
void botbaixo_press(void){
printf("BAIXO!\n\r");
//printf("timer: %.3f\n\r", baixo_debounce_timer.read());
if(baixo_debounce_timer.read()>0.2){
pbaixo = bot_baixo;
bot_baixo = !bot_baixo;
baixo_debounce_timer.reset();
baixo_debounce_timer.start();
}
}
//função para ler o timer
void botenter_release(void){
timer.stop();
quebrar = 1;
}
//função para ler o timer 2
void botcima_release(void){
timer2.stop();
//printf("%f,%d, timer 2 RISE\n\r", t2, voltar);
}
