#include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #define LED_RED GPIO_NUM_5 #define LED_GREEN GPIO_NUM_2 #define LED_BLUE GPIO_NUM_4 static TimerHandle_t led1 , led2 ,led3= NULL ; void TimerLedControlRed(TimerHandle_t xtimer){ // uint32_t led_timer_id = (uint32_t) pvTimerGetTimerID(xtimer) ; //red led gpio_set_level(LED_RED,!gpio_get_level(LED_RED)); printf(" from RED %d\n",ESP.getFreeHeap()); //printf("inside timer\n"); } void TimerLedControlGreen(TimerHandle_t xtimer){ // uint32_t led_timer_id = (uint32_t) pvTimerGetTimerID(xtimer) ; gpio_set_level(LED_GREEN,!gpio_get_level(LED_GREEN)); printf(" from GREEN %d\n",ESP.getFreeHeap()); //printf("inside timer\n"); } void TimerLedControlBlue(TimerHandle_t xtimer){ // uint32_t led_timer_id = (uint32_t) pvTimerGetTimerID(xtimer) ; //red led gpio_set_level(LED_BLUE,!gpio_get_level(LED_BLUE)); printf(" from BLUE %d\n",ESP.getFreeHeap()); //printf("inside timer\n"); } extern "C" void app_main() { //setting GPIO Direction (INPUT , OUTPUT) printf(" from main 1 %d\n",ESP.getFreeHeap()); gpio_set_direction(LED_RED, GPIO_MODE_OUTPUT); gpio_set_direction(LED_GREEN, GPIO_MODE_OUTPUT); gpio_set_direction(LED_BLUE, GPIO_MODE_OUTPUT); //timer tasks printf(" from main 2 %d\n",ESP.getFreeHeap()); led1 = xTimerCreate("LED Red", pdMS_TO_TICKS(100),pdTRUE,(void *) 0,TimerLedControlRed); led2 = xTimerCreate("LED Green", pdMS_TO_TICKS(100),pdTRUE,(void *) 1,TimerLedControlGreen); led3 = xTimerCreate("LED Blue", pdMS_TO_TICKS(100),pdTRUE,(void *) 2,TimerLedControlBlue); xTimerStart(led1,0); xTimerStart(led2,0); xTimerStart(led3,0); printf(" from main 3 %d\n",ESP.getFreeHeap()); }