You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
toaster-oven-bluepill/Core/Src/app_heater.h

40 lines
1004 B

2 years ago
/**
* Heater PWM control & regulation + temp sensing loop
2 years ago
*/
#ifndef BLUEPILLTROUBA_APP_HEATER_H
#define BLUEPILLTROUBA_APP_HEATER_H
#include <stdbool.h>
2 years ago
#include "cmsis_os2.h"
2 years ago
#define MAX_TEMP 400
2 years ago
extern osThreadId_t heaterTskHandle;
2 years ago
void app_task_heater(void *argument);
2 years ago
2 years ago
/// 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);
2 years ago
2 years ago
/// Shutdown the heater; This function does not use mutex and just disables the PWM via register access.
void app_heater_emergency_shutdown();
2 years ago
#endif //BLUEPILLTROUBA_APP_HEATER_H