tdse-tf_3-02

Controlador PID para derretidor de miel con control local via botones y remoto via WiFi
Index Commits Files Refs Submodules README
commit e1a139bcaea40cf0c791d0d06248ae46fc9bc0d6
parent eeaa7d640e8fafc29e9901d4996aa2c6836a3ed6
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Tue, 31 Mar 2026 14:15:02 -0300

Crear estructura para guardar configuración de `task_temp_ctrl`

Diffstat:
Mfirmware/app/src/task_temp_ctrl.c | 29+++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/firmware/app/src/task_temp_ctrl.c b/firmware/app/src/task_temp_ctrl.c
@@ -16,19 +16,28 @@
 
 #define G_TASK_CTRL_TICK_CNT_INI  0ul
 
-uint32_t g_task_temp_ctrl_tick;
+// Private data definition
+typedef struct {
+    TIM_HandleTypeDef *htim;
+    uint32_t tim_channel;
+} task_temp_ctrl_cfg_t;
 
-// this variable is incremented by 1 on every ms by HAL_SysTick
-volatile uint32_t g_task_temp_ctrl_tick_cnt;
+task_temp_ctrl_cfg_t task_temp_ctrl_cfg = {&htim1, TIM_CHANNEL_1};
 
+// Public data definition
+volatile uint32_t g_task_temp_ctrl_tick_cnt; // Incremented by HAL_SysTick callback
+
+// Public functions definition
 void task_temp_ctrl_init(void *parameters)
 {
     LOGGER_INFO("Initializing `task_temp_ctrl`...");
 
-    g_task_temp_ctrl_tick = G_TASK_CTRL_TICK_CNT_INI;
-
+    task_temp_ctrl_cfg_t *p_task_cfg = &task_temp_ctrl_cfg;
     shared_data_type *p_shared_data = (shared_data_type *)parameters;
-    TIM1->CCR1 = p_shared_data->temp_ctrl_pwm_dc;
+
+    __HAL_TIM_SET_COMPARE(p_task_cfg->htim,
+            p_task_cfg->tim_channel,
+            p_shared_data->temp_ctrl_pwm_dc);
     HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
 
     LOGGER_INFO("Done initializing `task_temp_ctrl`");
@@ -38,6 +47,7 @@ void task_temp_ctrl_update(void *parameters)
 {
     bool b_time_update_required;
     shared_data_type *p_shared_data = (shared_data_type *)parameters;
+    task_temp_ctrl_cfg_t *p_task_cfg = &task_temp_ctrl_cfg;
 
     __asm("CPSID i");
     if (G_TASK_CTRL_TICK_CNT_INI < g_task_temp_ctrl_tick_cnt)
@@ -74,12 +84,15 @@ void task_temp_ctrl_update(void *parameters)
         {
             if (p_shared_data->temp_ctrl_pwm_dc != TIM1->CCR1)
             {
-                TIM1->CCR1 = p_shared_data->temp_ctrl_pwm_dc;
+                __HAL_TIM_SET_COMPARE(p_task_cfg->htim,
+                        p_task_cfg->tim_channel,
+                        p_shared_data->temp_ctrl_pwm_dc);
             }
         }
         else
         {
-            TIM1->CCR1 = 0;
+            __HAL_TIM_SET_COMPARE(p_task_cfg->htim,
+                    p_task_cfg->tim_channel, 0);
         }
     }
 }