Sat, 01 Oct 2022 14:23:15 +0200
Updated kicad drawings to kicad 6.0.8
#ifndef _TASK_DRIVER_H #define _TASK_DRIVER_H /** * @file task_driver.h * @brief The interface to the FreeRTOS driver task. This task drives the Solid * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot * Liquer Tank (HLT) heating elements. It also controls the pump relay. * * It takes the temperature readings from the DS18B20 task. */ /** * @brief MLT working mode. */ typedef enum { MLT_MODE_NONE = 0, ///< Not active MLT_MODE_BANG = 1, ///< Bang on/off mode MLT_MODE_PID = 2, ///< PID mode MLT_MODE_OFF = 3, ///< Off but show setpoint MLT_MODE_EXT = 4, ///< External regulation } MLT_MODE_TYPE; /** * @brief HLT working mode. */ typedef enum { HLT_MODE_NONE = 0, ///< Not active HLT_MODE_BANG = 1, ///< Bang on/off mode HLT_MODE_OFF = 2, ///< Off but show setpoint HLT_MODE_ON = 3, ///< On if free } HLT_MODE_TYPE; /** * @brief Structure containing the information of the driver task. */ typedef struct { bool enable; ///< Enable outputs int mlt_gpio; ///< MLT SSR GPIO pin int mlt_mode; ///< MLT Mode: 0 = off, 1 = bang on/off, 2 = PID, 3 = cooling double mlt_sp; ///< Setpoint MLT temperature double mlt_pv; ///< Current MLT temperature int mlt_power; ///< Current MLT drive power % int hlt_gpio; ///< HLT SSR GPIO pin int hlt_mode; ///< HLT Mode: 0 = off, 1 = bang on/off, 2 = always on double hlt_sp; ///< Setpoint HLT temperature double hlt_pv; ///< Current HLT temperature int hlt_power; ///< Current HLT drive power % bool hlt_and_mlt; ///< True if both MLT and HLT are allowed at the same time. int pump_gpio; ///< Pump SSR GPIO pin int pump_run; ///< Pump on/off } DRIVER_State; /** * @brief FreeRTOS driver task. This task drives the Solid * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot * Liquer Tank (HLT) heating elements. It also controls the pump relay. */ void task_driver(void *); #endif