#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define A 27
#define B 26
#define C 25
#define D 33
#define E 32
#define F 19
#define G 18
#define BUTTON_PIN 4
void app_main() {
gpio_set_direction(A, GPIO_MODE_OUTPUT);
gpio_set_direction(B, GPIO_MODE_OUTPUT);
gpio_set_direction(C, GPIO_MODE_OUTPUT);
gpio_set_direction(D, GPIO_MODE_OUTPUT);
gpio_set_direction(E, GPIO_MODE_OUTPUT);
gpio_set_direction(F, GPIO_MODE_OUTPUT);
gpio_set_direction(G, GPIO_MODE_OUTPUT);
gpio_set_direction(BUTTON_PIN, GPIO_MODE_INPUT);
gpio_set_level(A, 0);
gpio_set_level(B, 0);
gpio_set_level(C, 0);
gpio_set_level(D, 0);
gpio_set_level(E, 0);
gpio_set_level(F, 0);
gpio_set_level(G, 0);
int numbers[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, //0
{0, 1, 1, 0, 0, 0, 0}, //1
{1, 1, 0, 1, 1, 0, 1}, //2
{1, 1, 1, 1, 0, 0, 1}, //3
{0, 1, 1, 0, 0, 1, 1}, //4
{1, 0, 1, 1, 0, 1, 1}, //5
{1, 0, 1, 1, 1, 1, 1}, //6
{1, 1, 1, 0, 0, 0, 0}, //7
{1, 1, 1, 1, 1, 1, 1}, //8
{1, 1, 1, 1, 0, 1, 1}, //9
};
int last_button_level = 0;
int cont = 0;
while (1) {
gpio_set_level(A, !numbers[cont][0]);
gpio_set_level(B, !numbers[cont][1]);
gpio_set_level(C, !numbers[cont][2]);
gpio_set_level(D, !numbers[cont][3]);
gpio_set_level(E, !numbers[cont][4]);
gpio_set_level(F, !numbers[cont][5]);
gpio_set_level(G, !numbers[cont][6]);
int button_level = gpio_get_level(BUTTON_PIN);
if (!button_level && last_button_level == !button_level) {
if (cont < 9) {
cont++;
} else {
cont = 0;
}
}
last_button_level = button_level;
vTaskDelay(100 / portTICK_PERIOD_MS);
}
}