Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- > Vamo fazer um menu no LCD com maquina de estados
- > O seguinte trecho vai existir no código:
- */
- enum tecla { btn_none=0, btn_left, btn_right, btn_select, btn_0, btn_1, btn_2, btn_3};
- enum estados { contando=0, menu1, menu2, menu3, menu4, ajuste, novo, lista};
- enum estados estado_atual;
- /*
- > Cada estado tem sua função "processa" e "botao", por exemplo:
- O estado "contando" tem a função botao_contador(enum tecla botao) e a função processa_contador() que printa isso no LCD:
- "Temporizador "
- " Inicio"
- > O estado "menu1" tem a função processa_menu1():
- " > Menu (1/4) "
- " [Ajustar hora] "
- > menu2 tem:
- " > Menu (2/4) "
- "[Listar eventos]"
- > menu3:
- " > Menu (3/4) "
- " [Criar evento] "
- > menu4:
- " > Menu (2/4) "
- " [Sair do menu] "
- > ajuste:
- " > Ajuste hora "
- " _0:00:00 "
- > A função botao_menu1(enum tecla botao) por exemplo serve para interpretar o botão pressionado e fazer algo, por exemplo:
- */
- void botao_menu1(int botao) {
- if (botao == btn_direita) {
- estado_atual = menu2;
- }
- }
- /*
- > 1. Implementar as funções processa_menu1(void) até processa_menu4(void)
- > 2. Implementar as funções botao_menu1(...) até botao_menu4(...) para setar o estado_atual dependendo da tecla
- > 3. Implementar a função direciona_botao(enum tecla botao) que verifica o estado e chama a função botao_XXXX correspondente
- > 4. Implementar a função direciona_processo(void) que verifica o estado e chama a função processa_XXXX correspondente
- > São 10 funções que vc tem que implementar
- > não use HAL_Delay, nem le_teclado, essas coisas vão vir da main(), que eu vou implementar
- > Vou implementar também as funções dos estados "ajuste", "lista" e "novo".
- */
Add Comment
Please, Sign In to add comment