/** * Heater PWM control & regulation + temp sensing loop */ #ifndef BLUEPILLTROUBA_APP_HEATER_H #define BLUEPILLTROUBA_APP_HEATER_H #include #include "cmsis_os2.h" #define MAX_TEMP 400 extern osThreadId_t heaterTskHandle; void app_task_heater(void *argument); /// Clear manual override, disable heater for normal mode. void app_heater_manual_override_clear(); /// Set manual override PWM 0-100%. /// Also disables heater in the normal mode. void app_heater_manual_override(int percent); /// Set heater regulator tuning. /// Mutex is locked internally. void app_heater_set_tuning(float p, float i, float d); /// Set heater on/off. /// Mutex is locked internally. void app_heater_enable(bool enable); /// Set heater setpoint /// Mutex is locked internally. void app_heater_set_target(float target); /// Shutdown the heater; This function does not use mutex and just disables the PWM via register access. void app_heater_emergency_shutdown(); bool app_heater_get_state(); float app_heater_get_target(); #endif //BLUEPILLTROUBA_APP_HEATER_H