#include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #include "esp_log.h" #include "outputs.h" const uint8_t uCirculationPumpGpioPin = 27U; const uint8_t uBurnerGpioPin = 14U; static eOutput sCirculationPumpState; static eOutput sBurnerState; void initOutputs(void) { gpio_config_t ioConfCirculationPump = { .pin_bit_mask = (1ULL << uCirculationPumpGpioPin), // Pin mask .mode = GPIO_MODE_OUTPUT, // Set as output .pull_up_en = GPIO_PULLUP_DISABLE, // Disable pull-up .pull_down_en = GPIO_PULLDOWN_DISABLE, // Disable pull-down .intr_type = GPIO_INTR_DISABLE // Disable interrupts }; gpio_config_t ioConfBurner = { .pin_bit_mask = (1ULL << uBurnerGpioPin), // Pin mask .mode = GPIO_MODE_OUTPUT, // Set as output .pull_up_en = GPIO_PULLUP_DISABLE, // Disable pull-up .pull_down_en = GPIO_PULLDOWN_DISABLE, // Disable pull-down .intr_type = GPIO_INTR_DISABLE // Disable interrupts }; gpio_config(&ioConfCirculationPump); gpio_config(&ioConfBurner); } eOutput getCirculationPumpState(void) { return sCirculationPumpState; } void setCirculationPumpState(eOutput in) { sCirculationPumpState = in; switch (sCirculationPumpState) { case ENABLED: gpio_set_level(uCirculationPumpGpioPin, 1U); // Switch on Circulation Pump break; case DISABLED: gpio_set_level(uCirculationPumpGpioPin, 0U); // Switch off Circulation Pump default: break; } } eOutput getBurnerState(void) { return sBurnerState; } void setBurnerState(eOutput in) { sBurnerState = in; switch (sBurnerState) { case ENABLED: gpio_set_level(uBurnerGpioPin, 0U); // Switch on Burner break; case DISABLED: gpio_set_level(uBurnerGpioPin, 1U); // Switch off Burner default: break; } }