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 cf121b2246f0af4d4016c44d24ab682a2dc5a426
parent 55c191d2cbd2a50d62ab1395c157cd8c7ca179b9
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 30 Mar 2026 13:29:14 -0300

En estado `ST_MEN_IDLE` solo actualizar el display si algún parámetro cambia

Diffstat:
Mfirmware/app/src/task_menu.c | 9++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/firmware/app/src/task_menu.c b/firmware/app/src/task_menu.c
@@ -31,6 +31,7 @@ void task_menu_statechart(void *parameters);
 // Private variables
 bool g_display_update = false;
 task_menu_st_t g_menu_prev_state;
+static int16_t temp_sensor_prev;
 
 // Public variables
 volatile uint32_t g_task_menu_tick_cnt;
@@ -44,6 +45,7 @@ extern uint16_t g_ds18b20_dma_error_count;
 void task_menu_init(void *parameters)
 {
     task_menu_dta_t *p_task_menu_dta;
+    shared_data_type *p_shared_data = (shared_data_type *)parameters;
 
     LOGGER_INFO("Initializing `task_menu`...");
 
@@ -54,6 +56,7 @@ void task_menu_init(void *parameters)
     p_task_menu_dta->state = ST_MEN_IDLE;
     p_task_menu_dta->event = EV_MEN_ST_IDLE;
     p_task_menu_dta->event_flag = false;
+    temp_sensor_prev = p_shared_data->temp_sensor;
 
     display_i2c_init();
     display_i2c_set_cursor_pos(0, 0);
@@ -174,7 +177,11 @@ void task_menu_statechart(void *parameters)
 
             if (0 == p_task_menu_dta->tick)
             {
-                g_display_update = true;
+                if (p_shared_data->temp_sensor != temp_sensor_prev)
+                {
+                    g_display_update = true;
+                }
+                temp_sensor_prev = p_shared_data->temp_sensor;
                 p_task_menu_dta->tick = G_TASK_MEN_DISPLAY_UPDATE_RATE_MS;
             }
             else