#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
//defining the functions
void toggleLED(int gpiopin);
void blinkLED(int gpioPin, int times);
void app_main() {
//definitions
#define LED1 GPIO_NUM_2
#define LED2 GPIO_NUM_4
#define BUTTON1 GPIO_NUM_18
//setting them all to ouptput
gpio_set_direction(LED1, GPIO_MODE_OUTPUT);
gpio_set_direction(LED2, GPIO_MODE_OUTPUT);
gpio_set_direction(BUTTON1, GPIO_MODE_INPUT);
while (1) {
//does nothing unless the button is pressed
if (gpio_get_level(BUTTON1) == 0) {
vTaskDelay(50 / portTICK_PERIOD_MS);
// Toggle LED1
toggleLED(LED1);
// Blink LED2 3 times
blinkLED(LED2, 3);
vTaskDelay(200 / portTICK_PERIOD_MS); //small delay
}
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
void toggleLED(int gpiopin)
{
int B1 = gpio_get_level(BUTTON1);
gpio_set_level(LED1, 1);
}
void blinkLED(int gpioPin, int times) {
for (int i = 0; i < times; i++) {
gpio_set_level(gpioPin, 1); // Turn LED on
vTaskDelay(500 / portTICK_PERIOD_MS); // Delay .5s
gpio_set_level(gpioPin, 0); // Turn LED off
vTaskDelay(500 / portTICK_PERIOD_MS); // Delay .5s
}
}