#include <stdio.h>
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
// Definindo os pinos para o Display de 7 Segmentos (use pinos válidos)
#define SEG_A 18
#define SEG_B 5
#define SEG_C 32
#define SEG_D 33
#define SEG_E 25
#define SEG_F 26
#define SEG_G 27
uint8_t segment_map[] = {0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,0b01101101,0b01111101,0b00000111};
void display_number(uint8_t num) {
uint8_t segments = segment_map[num];
gpio_set_level(SEG_A, (segments >> 0) & 0x01);
gpio_set_level(SEG_B, (segments >> 1) & 0x01);
gpio_set_level(SEG_C, (segments >> 2) & 0x01);
gpio_set_level(SEG_D, (segments >> 3) & 0x01);
gpio_set_level(SEG_E, (segments >> 4) & 0x01);
gpio_set_level(SEG_F, (segments >> 5) & 0x01);
gpio_set_level(SEG_G, (segments >> 6) & 0x01);
}
void setup() {
gpio_set_direction(SEG_A, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_B, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_C, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_D, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_E, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_F, GPIO_MODE_OUTPUT);
gpio_set_direction(SEG_G, GPIO_MODE_OUTPUT);
}
void app_main() {
setup();
while (1) {
for (int i = 0; i < 8; i++) {
display_number(i);
vTaskDelay(1000 / portTICK_PERIOD_MS); // Delay de 1 segundo entre os números
}
}
}