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 44defb82561a08db184f8849d382d87557ef57a9
parent 3482a2cce4b4715c4c2bdf287152fa7f24bd5f07
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Sun, 22 Mar 2026 12:50:53 -0300

Modificar parametros de DS18B20

Reducir tiempo de conversion a 100 ms. Intentar leer multiples veces (en
lugar de una unica vez) cuando el DMA no recibe el byte mas
significativo.

Diffstat:
Mfirmware/app/src/ds18b20.c | 12+++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/firmware/app/src/ds18b20.c b/firmware/app/src/ds18b20.c
@@ -15,8 +15,8 @@
 #include "task_menu_attribute.h"
 #include "task_menu_interface.h"
 
-#define G_DS18B20_CONV_TIME_MS   180ul // ~188ms for 10 bit resolution
-#define G_DS18B20_DMA_TIMEOUT_MS 50ul
+#define G_DS18B20_CONV_TIME_MS   100ul // ~188ms for 10 bit resolution
+#define G_DS18B20_DMA_TIMEOUT_MS 10ul
 #define G_TEMP_PERIOD_MS         1000ul
 
 // Private global variables
@@ -214,9 +214,9 @@ void DS18B20_Update(void)
             }
             else if (0 == g_DS18B20_tick) // Error handling
             {
-                if (0 == l_DS18B20_DMA_error_count)
+                if (5 > l_DS18B20_DMA_error_count)
                 {
-                    // Try again readying scratchpad (only once)
+                    // Try again readying scratchpad
                     g_DS18B20_DMA_error_count++;
                     l_DS18B20_DMA_error_count++;
                     put_event_task_menu(EV_MEN_DISPLAY_UPDATE);
@@ -233,15 +233,13 @@ void DS18B20_Update(void)
 
                     HAL_UART_Transmit_DMA(&huart1, g_buffer, 8);
                     HAL_UART_Receive_DMA(&huart1, g_DS18B20_Received_data_buffer, 8);
-
-                    g_DS18B20_tick = G_DS18B20_DMA_TIMEOUT_MS;
                     */
 
                     g_DS18B20_state = ST_DS18B20_BUSY_WAITING_CONV;
                 }
                 else
                 {
-                    // DMA Timeout, start conversion again
+                    // Give up on reading temp for this update
                     __HAL_UART_DISABLE(&huart1);
                     __HAL_UART_ENABLE(&huart1);
                     g_DS18B20_state = ST_DS18B20_READY;