#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "rom/gpio.h"
#define a 22
#define b 23
#define c 17
#define d 5
#define e 18
#define f 21
#define g 19
#define bt0 13
#define bt1 12
void config_hardware();
void config_saida();
void app_main() {
bool bt0_value, bt1_value;
int x = 500;
config_hardware();
config_saida();
vTaskDelay(100 / portTICK_PERIOD_MS);
while(true){
for(int i=9; i>-1; i--){
bt0_value = gpio_get_level(bt0);
bt1_value = gpio_get_level(bt1);
printf("Velocidade: %d\n", x);
if(bt0_value == 0){
x = x + 100;
vTaskDelay(pdMS_TO_TICKS(50));
if(x >= 1000){
x=1000;
}
}
if(bt1_value == 0){
x = x - 100;
vTaskDelay(pdMS_TO_TICKS(50));
if(x <= 100){
x=100;
}
}
switch (i){
case 9:
printf("9\n");
//9
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 8:
printf("8\n");
//8
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 7:
printf("7\n");
//7
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,0);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 6:
printf("6\n");
//6
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 5:
printf("5\n");
//5
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 4:
printf("4\n");
//4
gpio_set_level(a,0);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 3:
printf("3\n");
//3
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 2:
printf("2\n");
//2
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,0);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,0);
gpio_set_level(g,1);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 1:
printf("1\n");
//1
gpio_set_level(a,0);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,0);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
case 0:
printf("0\n");
//0
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,0);
vTaskDelay(x / portTICK_PERIOD_MS);
break;
}
}
}
}
void config_hardware() {
gpio_pad_select_gpio(a);
gpio_set_direction(a, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(b);
gpio_set_direction(b, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(c);
gpio_set_direction(c, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(d);
gpio_set_direction(d, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(e);
gpio_set_direction(e, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(f);
gpio_set_direction(f, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(g);
gpio_set_direction(g, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(bt0);
gpio_set_direction(bt0, GPIO_MODE_INPUT);
gpio_set_pull_mode(bt0, GPIO_PULLUP_ONLY);
gpio_pad_select_gpio(bt1);
gpio_set_direction(bt1, GPIO_MODE_INPUT);
gpio_set_pull_mode(bt1, GPIO_PULLUP_ONLY);
}
void config_saida() {
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);
}
CHAVE
Pot1
BTN1
BTN0
LEDS
DISPLAY