/******************************************************************************
Nome do Arquivo : main.c
Descrição : Arquivo principal aula 5, exemplo 1
Ambiente : WOKWI e RP2040 C/C++ SDK
Responsável : Weslley M. Torres
Versão/Data : 1.0.0 - 25/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 "hardware/gpio.h"
#include "hardware/adc.h"
/*****************************************************************************/
/******************************************************************************
Variaveis Globais
******************************************************************************/
#define OUT_H 1
#define OUT_L 0
#define GPIO_LED_VERM 7
#define GPIO_LED_VERD 8
#define GPIO_CHAVE 15
char smile[8] = {
0b00000000,
0b00001010,
0b00001010,
0b00001010,
0b00000000,
0b00010001,
0b00001110,
0b00000000,
};
char sad[8] = {
0b00000000,
0b00001010,
0b00001010,
0b00001010,
0b00000000,
0b00000000,
0b00001110,
0b00010001,
};
/*****************************************************************************/
/******************************************************************************
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()
{
uint8_t button_last_sts = 0;
uint8_t texto_linha_um[17] = "FATEC S.A. 2024";
uint8_t texto_linha_dois[17] = " Teste Display ";
stdio_init_all();
printf("Microcontroladores - Aula 09\n");
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);
cria_caractere_lcd(0,smile);
cria_caractere_lcd(1,sad);
LIMPA_DISPLAY();
DesligaCursor();
sleep_ms(500);
while (true)
{
button_last_sts = gpio_get(GPIO_CHAVE);
if (button_last_sts == 0)
{
gpio_put(GPIO_LED_VERD, OUT_H);
gpio_put(GPIO_LED_VERM, OUT_L);
LIMPA_DISPLAY();
posicao_cursor_lcd(1,1);
escreve_caractere_lcd(0);
}
else
{
gpio_put(GPIO_LED_VERD, OUT_L);
gpio_put(GPIO_LED_VERM, OUT_H);
posicao_cursor_lcd(1,1);
LIMPA_DISPLAY();
posicao_cursor_lcd(1,1);
escreve_caractere_lcd(1);
}
}
}
/******************************************************************************
Funcao: void system_init(void)
Entrada: Nenhuma (void)
Saída: Nenhuma (void)
Descrição: Inicializa sistema (microcontrolador e periféricos)
*****************************************************************************/
void system_init(void)
{
//stdio_init_all();
printf("Init Hardware ....\n");
sleep_ms(10);
gpio_init(GPIO_LED_VERM);
gpio_set_dir(GPIO_LED_VERM, GPIO_OUT);
gpio_init(GPIO_LED_VERD);
gpio_set_dir(GPIO_LED_VERD, GPIO_OUT);
gpio_init(GPIO_CHAVE);
gpio_set_dir(GPIO_CHAVE, GPIO_IN);
gpio_pull_up(GPIO_CHAVE);
init_lcd();
}