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 e1ddfb903ed4d964122c8d2427bef43ec35a5be8
parent 30f2809802d04b6875a40a9574b0d4097b4b85ea
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Sun,  7 Jun 2026 14:44:54 -0300

Agregar diagrama de estados de `task_system`

Diffstat:
MMEMORIA.md | 29+++++++++++++++++++++--------
Aimg/system_statechart.png | 0
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/MEMORIA.md b/MEMORIA.md
@@ -643,20 +643,33 @@ puede observar en la figura 3.9, en la cual las flechas con lineas punteadas
 indican el mecanismo de acceso a la variable compartida y las flechas con lineas
 continuas indican el mecanismo de eventos.
 
+### 3.2.2 Tarea central
 
-### 3.2.2 Tarea System
+La tarea central, `task_system`, gestiona la lógica del sistema y la máquina de
+estados principal. A continuación en la figura 3.10 se muestra un diagrama de
+estados de la maquina que implementa la tarea. Este diagrama es una versión
+simplificada de la lógica que se implementa en la tarea, ya que no se muestran
+los eventos que se envían a otras tareas, pero sirve para mostrar como se cambia
+la funcionalidad de los botones de acuerdo al estado.
 
-`task_system` es la tarea central que gestiona la lógica de aplicación y la
-máquina de estados principal. Implementa los siguientes estados:
+<div align="center">
+    <img src="img/system_statechart.png" style="padding: 10px" align=center width="800px">
+    <p><em>Figura 3.10: Diagrama de estados de tarea system. Version simplificada.</em></p>
+</div>
+
+Se tienen los siguientes estados:
 
-- `ST_SYS_IDLE`: Estado de reposo, muestra temperatura en display.
-- `ST_SYS_CLOCK_SET`: Configuración de hora del RTC.
+- `ST_SYS_IDLE`: Estado de reposo, se muestran varios parámetros en el display,
+  tal como la temperatura actual, la temperatura deseada y si hay un timer
+  programado. Este estado también contempla que el calefactor esté activo, lo
+  que puede resultar confuso. Un mejor nombre quizás hubiese sido `ST_SYS_MAIN`.
+- `ST_SYS_CLOCK_SET`: Configuración de hora del reloj de tiempo real.
 - `ST_SYS_TEMP_SET`: Ajuste de temperatura deseada.
 - `ST_SYS_TIMER_SET_STATUS`: Habilitación/deshabilitación del timer.
-- `ST_SYS_TIMER_SET_START`: Configuración de hora de inicio.
-- `ST_SYS_TIMER_SET_END`: Configuración de hora de fin.
+- `ST_SYS_TIMER_SET_START`: Configuración de hora de inicio del timer.
+- `ST_SYS_TIMER_SET_END`: Configuración de hora de fin del timer.
 
-Además, gestiona:
+Además en esta tarea se gestiona:
 
 - Persistencia en flash: Utiliza una página completa (1024 bytes) en la
   dirección `0x0801FC00` como emulación EEPROM. Los valores se escriben en
diff --git a/img/system_statechart.png b/img/system_statechart.png
Binary files differ.