#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
static const char *TAG = "example";
/* Use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
or you can edit the following line and set a number here.
*/
#define led1 2
#define led2 4
#define led3 16
#define led4 17
#define led5 5
#define led6 18
#define led7 19
#define led8 21
#define dip1 12
#define dip2 14
#define dip3 27
#define dip4 26
#define dip5 25
#define dip6 33
#define dip7 32
#define dip8 35
static uint8_t s_led_state = 0;
static uint8_t d_led_state = 1;
void animation1();
void animation2();
void animation3();
void animation4();
static void configure_led()
{
gpio_reset_pin(led1);
gpio_set_direction(led1,GPIO_MODE_OUTPUT);
gpio_reset_pin(led2);
gpio_set_direction(led2,GPIO_MODE_OUTPUT);
gpio_reset_pin(led3);
gpio_set_direction(led3,GPIO_MODE_OUTPUT);
gpio_reset_pin(led4);
gpio_set_direction(led4,GPIO_MODE_OUTPUT);
gpio_reset_pin(led5);
gpio_set_direction(led5,GPIO_MODE_OUTPUT);
gpio_reset_pin(led6);
gpio_set_direction(led6,GPIO_MODE_OUTPUT);
gpio_reset_pin(led7);
gpio_set_direction(led7,GPIO_MODE_OUTPUT);
gpio_reset_pin(led8);
gpio_set_direction(led8,GPIO_MODE_OUTPUT);
gpio_reset_pin(dip1);
gpio_set_pull_mode(dip1,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip2);
gpio_set_pull_mode(dip2,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip3);
gpio_set_pull_mode(dip3,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip4);
gpio_set_pull_mode(dip4,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip5);
gpio_set_pull_mode(dip5,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip6);
gpio_set_pull_mode(dip6,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip7);
gpio_set_pull_mode(dip7,GPIO_PULLDOWN_ENABLE);
gpio_reset_pin(dip8);
gpio_set_pull_mode(dip8,GPIO_PULLDOWN_ENABLE);
}
void velocidad()
{
if(gpio_get_level(dip5)){
vTaskDelay(500/portTICK_PERIOD_MS);
}
else if(gpio_get_level(dip6)){
vTaskDelay(2500/portTICK_PERIOD_MS);
}
else if(gpio_get_level(dip7)){
vTaskDelay(1500/portTICK_PERIOD_MS);
}
else if(gpio_get_level(dip8)){
vTaskDelay(250/portTICK_PERIOD_MS);
}
}
void app_main(void)
{
/* Configure the peripheral according to the LED type */
configure_led();
while (1) {
if(gpio_get_level(dip1)){
animation1();
}
else if(gpio_get_level(dip2)){
animation2();
}
else if(gpio_get_level(dip3)){
animation3();
}
else if(gpio_get_level(dip4)){
animation4();
}
}
}
void animation1(){
gpio_set_level(led1,s_led_state);
gpio_set_level(led2,s_led_state);
gpio_set_level(led3,s_led_state);
gpio_set_level(led4,s_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
}
void animation2(){
gpio_set_level(led1,d_led_state);
gpio_set_level(led2,d_led_state);
gpio_set_level(led3,s_led_state);
gpio_set_level(led4,s_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
velocidad();
gpio_set_level(led1,s_led_state);
gpio_set_level(led2,s_led_state);
gpio_set_level(led3,s_led_state);
gpio_set_level(led4,s_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
velocidad();
}
void animation3(){
gpio_set_level(led1,d_led_state);
gpio_set_level(led2,d_led_state);
gpio_set_level(led3,d_led_state);
gpio_set_level(led4,d_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
velocidad();
gpio_set_level(led1,s_led_state);
gpio_set_level(led2,s_led_state);
gpio_set_level(led3,s_led_state);
gpio_set_level(led4,s_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
velocidad();
}
void animation4(){
gpio_set_level(led1,d_led_state);
gpio_set_level(led2,d_led_state);
gpio_set_level(led3,d_led_state);
gpio_set_level(led4,d_led_state);
gpio_set_level(led5,d_led_state);
gpio_set_level(led6,d_led_state);
gpio_set_level(led7,d_led_state);
gpio_set_level(led8,d_led_state);
velocidad();
gpio_set_level(led1,s_led_state);
gpio_set_level(led2,s_led_state);
gpio_set_level(led3,s_led_state);
gpio_set_level(led4,s_led_state);
gpio_set_level(led5,s_led_state);
gpio_set_level(led6,s_led_state);
gpio_set_level(led7,s_led_state);
gpio_set_level(led8,s_led_state);
velocidad();
}