|
@@ -0,0 +1,43 @@
|
|
|
|
+#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
|