#include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "driver/ledc.h" #include "driver/pcnt.h" #include "esp_attr.h" #include "esp_log.h" #include "relay_control.h" #ifdef ENABLE_RELAY_OUTPUT void relayControlTask(void *pvParameters) { ESP_LOGI("RELAY", "relayControlTask starting. Core:%d",xPortGetCoreID()); uint8_t relayState = 0; while( 1 ) { relayState = !relayState; ESP_LOGI("RELAY", "Change relay state: %u",relayState); gpio_set_level(VVB_RELAY_OUTPUT_IO, relayState); vTaskDelay(5000 / portTICK_PERIOD_MS); } } void relay_control_init() { ESP_LOGI("RELAY", "relay_control_init()"); gpio_reset_pin(VVB_RELAY_OUTPUT_IO); gpio_set_direction(VVB_RELAY_OUTPUT_IO, GPIO_MODE_OUTPUT); xTaskCreate(relayControlTask, "relayControlTask", 1024*10, NULL, 2, NULL); } #endif