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 6a8c520af41e896354917b46e5b28f3ee6ef0343
parent 4193f449ffb23cb8dc3f6c82f7ff5f19dcd47516
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Tue,  7 Apr 2026 16:59:42 -0300

Actualizar display solo si la temperatura o el ciclo de trabajo cambian

Diffstat:
Mfirmware/app/src/task_menu.c | 12++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/firmware/app/src/task_menu.c b/firmware/app/src/task_menu.c
@@ -34,6 +34,7 @@ static uint8_t task_menu_count_digits(int16_t n);
 static bool g_display_update;
 static task_menu_st_t g_menu_prev_state;
 static int16_t temp_sensor_prev;
+static uint8_t temp_ctrl_pwm_dc_prev;
 
 // Public variables
 volatile uint32_t g_task_menu_tick_cnt;
@@ -59,6 +60,7 @@ void task_menu_init(void *parameters)
     p_task_menu_dta->event = EV_MEN_ST_IDLE;
     p_task_menu_dta->event_flag = false;
     temp_sensor_prev = p_shared_data->temp_sensor;
+    temp_ctrl_pwm_dc_prev = p_shared_data->temp_ctrl_pwm_dc;
 
     display_i2c_init();
     display_i2c_set_cursor_pos(0, 0);
@@ -192,11 +194,13 @@ static void task_menu_statechart(void *parameters)
 
             if (0 == p_task_menu_dta->tick)
             {
-                if (p_shared_data->temp_sensor != temp_sensor_prev)
+                if ((p_shared_data->temp_sensor != temp_sensor_prev) ||
+                        (p_shared_data->temp_ctrl_pwm_dc != temp_ctrl_pwm_dc_prev))
                 {
                     g_display_update = true;
                 }
                 temp_sensor_prev = p_shared_data->temp_sensor;
+                temp_ctrl_pwm_dc_prev = p_shared_data->temp_ctrl_pwm_dc;
                 p_task_menu_dta->tick = G_TASK_MEN_DISPLAY_UPDATE_RATE_MS;
             }
             else 
@@ -289,10 +293,10 @@ static void task_menu_statechart(void *parameters)
                 g_display_update = false;
                 display_i2c_async_clear();
                 display_i2c_async_write_string("Timer>");
-                display_i2c_async_set_cursor_pos(8, 0);
+                display_i2c_async_set_cursor_pos(13, 0);
                 memset(menu_row_str, '\0', sizeof(menu_row_str));
-                sprintf(menu_row_str, "%8s", 
-                        p_shared_data->timer->enabled ? "enabled" : "disabled");
+                sprintf(menu_row_str, "%3s", 
+                        p_shared_data->timer->enabled ? "On" : "Off");
                 display_i2c_async_write_string(menu_row_str);
 
                 display_i2c_async_set_cursor_pos(3, 1);