/******************************************************************************
* Nome do Arquivo : main.c
*
* Descrição : Arquivo principal aula 4, exemplo 3
*
* Ambiente : WOKWI e RP2040 C/C++ SDK
*
* Responsável : Weslley M. Torres
*
* Versão/Data : 1.0.0 - 10/03/2024 - Initial version
*
*****************************************************************************/
/******************************************************************************
* HEADER-FILES (Somente os arquivos necessários nesse arquivo)
******************************************************************************/
#include <stdio.h>
#include "pico/stdlib.h"
#include "display_lcd.h"
#include "matematica.h"
/*****************************************************************************/
/******************************************************************************
* Variaveis Globais
******************************************************************************/
char smile[8] = {
0b00000000,
0b00001010,
0b00001010,
0b00001010,
0b00000000,
0b00010001,
0b00001110,
0b00000000
};
char sad[8]={
0b00000000,
0b00001010,
0b00001010,
0b00001010,
0b00000000,
0b00000000,
0b00001110,
0b00010001
};
#define OUT_H 1
#define OUT_L 0
#define LED 28
#define LED_2 27
#define OUT 1
#define IN 0
#define BOTAO 15
/*****************************************************************************/
/******************************************************************************
* Prototipos das funções
******************************************************************************/
void system_init(void);
/*****************************************************************************/
/******************************************************************************
* Funcao: int main(void)
* Entrada: Nenhuma (void)
* Saída: Nenhuma (void)
* Descrição: Função principal
*****************************************************************************/
int main()
{
unsigned int estado_botao = 0;
unsigned char texto_linha_um[17] = "FATEC S.A. 2024";
unsigned char texto_linha_dois[17] = " Teste Display ";
unsigned char msg_botao[17] = "Botao 1 Press ";
unsigned char msg_botao_n_press[17] = "Bt 1 Nao Press ";
stdio_init_all();
sleep_ms(250);
system_init();
posicao_cursor_lcd(1,1);
escreve_frase_ram_lcd(texto_linha_um);
posicao_cursor_lcd(2,1);
escreve_frase_ram_lcd(texto_linha_dois);
sleep_ms(500);
cria_caractere_lcd(0,smile);
cria_caractere_lcd(1,sad);
LIMPA_DISPLAY();
DesligaCursor();
while(true)
{
estado_botao = gpio_get(BOTAO);
if(estado_botao == 0)
{
posicao_cursor_lcd(1,1);
escreve_frase_ram_lcd(msg_botao);
posicao_cursor_lcd(2,0);
escreve_caractere_lcd(0);
}
else
{
posicao_cursor_lcd(1,1);
escreve_frase_ram_lcd(msg_botao_n_press);
posicao_cursor_lcd(2,0);
escreve_caractere_lcd(1);
}
sleep_ms(10);
}
}
/******************************************************************************
* Funcao: void system_init(void)
* Entrada: Nenhuma (void)
* Saída: Nenhuma (void)
* Descrição: Inicializa sistema (microcontrolador e periféricos)
*****************************************************************************/
void system_init(void)
{
gpio_init(LED);
gpio_set_dir(LED, OUT);
gpio_init(LED_2);
gpio_set_dir(LED_2, OUT);
gpio_init(BOTAO);
gpio_set_dir(BOTAO, IN);
gpio_pull_up(BOTAO);
sleep_ms(250);
init_lcd();
}