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 7958154a958799fd3a9b44b1cae99ea260276b57
parent 2b0c170e9c9ead6241e2a039bf2d195f5cfb2b7b
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Fri, 27 Mar 2026 19:10:14 -0300

Eliminar controlador de display por interfaz paralela

Diffstat:
Dfirmware/app/inc/display.h | 28----------------------------
Dfirmware/app/src/display.c | 359-------------------------------------------------------------------------------
2 files changed, 0 insertions(+), 387 deletions(-)
diff --git a/firmware/app/inc/display.h b/firmware/app/inc/display.h
@@ -1,28 +0,0 @@
-#ifndef _DISPLAY_H_
-#define _DISPLAY_H_
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-     DISPLAY_CONNECTION_GPIO_4BITS,
-     DISPLAY_CONNECTION_GPIO_8BITS,
-} display_connection_t;
-
-typedef struct {
-   display_connection_t connection;
-} display_t;
-
-void display_init(display_connection_t connection);
-void display_set_cursor_pos(uint8_t x, uint8_t y);
-void display_write_string(const char * str);
-void display_clear(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _DISPLAY_H_ */
diff --git a/firmware/app/src/display.c b/firmware/app/src/display.c
@@ -1,359 +0,0 @@
-#include "display.h"
-#include "main.h"
-#include <stdbool.h>
-
-// Demo includes
-#include "logger.h"
-#include "dwt.h"
-#include "systick.h"
-
-// Functional states
-#ifndef OFF
-#define OFF    0
-#endif
-#ifndef ON
-#define ON     (!OFF)
-#endif
-
-// Electrical states
-#ifndef LOW
-#define LOW    0
-#endif
-#ifndef HIGH
-#define HIGH   (!LOW)
-#endif
-
-#define DISPLAY_IR_CLEAR_DISPLAY   0b00000001
-#define DISPLAY_IR_SET_CURSOR_HOME 0b00000010
-#define DISPLAY_IR_ENTRY_MODE_SET  0b00000100
-#define DISPLAY_IR_DISPLAY_CONTROL 0b00001000
-#define DISPLAY_IR_FUNCTION_SET    0b00100000
-#define DISPLAY_IR_SET_DDRAM_ADDR  0b10000000
-
-#define DISPLAY_IR_ENTRY_MODE_SET_INCREMENT 0b00000010
-#define DISPLAY_IR_ENTRY_MODE_SET_DECREMENT 0b00000000
-#define DISPLAY_IR_ENTRY_MODE_SET_SHIFT     0b00000001
-#define DISPLAY_IR_ENTRY_MODE_SET_NO_SHIFT  0b00000000
-
-#define DISPLAY_IR_DISPLAY_CONTROL_DISPLAY_ON  0b00000100
-#define DISPLAY_IR_DISPLAY_CONTROL_DISPLAY_OFF 0b00000000
-#define DISPLAY_IR_DISPLAY_CONTROL_CURSOR_ON   0b00000010
-#define DISPLAY_IR_DISPLAY_CONTROL_CURSOR_OFF  0b00000000
-#define DISPLAY_IR_DISPLAY_CONTROL_BLINK_ON    0b00000001
-#define DISPLAY_IR_DISPLAY_CONTROL_BLINK_OFF   0b00000000
-
-#define DISPLAY_IR_FUNCTION_SET_8BITS    0b00010000
-#define DISPLAY_IR_FUNCTION_SET_4BITS    0b00000000
-#define DISPLAY_IR_FUNCTION_SET_2LINES   0b00001000
-#define DISPLAY_IR_FUNCTION_SET_1LINE    0b00000000
-#define DISPLAY_IR_FUNCTION_SET_5x10DOTS 0b00000100
-#define DISPLAY_IR_FUNCTION_SET_5x8DOTS  0b00000000
-
-#define DISPLAY_20x4_LINE1_FIRST_CHARACTER_ADDRESS 0
-#define DISPLAY_20x4_LINE2_FIRST_CHARACTER_ADDRESS 64
-#define DISPLAY_20x4_LINE3_FIRST_CHARACTER_ADDRESS 20
-#define DISPLAY_20x4_LINE4_FIRST_CHARACTER_ADDRESS 84
-
-#define DISPLAY_RS_INSTRUCTION 0
-#define DISPLAY_RS_DATA        1
-
-#define DISPLAY_RW_WRITE 0
-#define DISPLAY_RW_READ  1
-
-#define DISPLAY_PIN_RS  4
-#define DISPLAY_PIN_RW  5
-#define DISPLAY_PIN_EN  6
-#define DISPLAY_PIN_D0  7
-#define DISPLAY_PIN_D1  8
-#define DISPLAY_PIN_D2  9
-#define DISPLAY_PIN_D3 10
-#define DISPLAY_PIN_D4 11
-#define DISPLAY_PIN_D5 12
-#define DISPLAY_PIN_D6 13
-#define DISPLAY_PIN_D7 14
-
-#define DISPLAY_PIN_D4_PORT 0
-#define DISPLAY_PIN_D4_PIN  0
-#define DISPLAY_PIN_D5_PORT 0
-#define DISPLAY_PIN_D5_PIN  0
-#define DISPLAY_PIN_D6_PORT 0
-#define DISPLAY_PIN_D6_PIN  0
-#define DISPLAY_PIN_D7_PORT 0
-#define DISPLAY_PIN_D7_PIN  0
-#define DISPLAY_PIN_EN_PORT 0
-#define DISPLAY_PIN_EN_PIN  0
-#define DISPLAY_PIN_RS_PORT 0
-#define DISPLAY_PIN_RS_PIN  0
-
-#define DISPLAY_DEL_37US 37ul
-#define DISPLAY_DEL_US 5ul
-
-static display_t display;
-static bool initial_comm_completed;
-
-// Private functions declaration
-static void display_pin_write(uint8_t pin_name, int value);
-static void display_data_bus_write(uint8_t byte);
-static void display_code_write(bool type, uint8_t data_bus);
-
-// Public functions definition
-void display_init(display_connection_t connection)
-{
-    display.connection = connection;
-
-    initial_comm_completed = false;
-
-    HAL_Delay(50);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                      DISPLAY_IR_FUNCTION_SET |
-                      DISPLAY_IR_FUNCTION_SET_8BITS);
-    HAL_Delay(5);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                      DISPLAY_IR_FUNCTION_SET |
-                      DISPLAY_IR_FUNCTION_SET_8BITS);
-    HAL_Delay(1);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                      DISPLAY_IR_FUNCTION_SET |
-                      DISPLAY_IR_FUNCTION_SET_8BITS);
-    HAL_Delay(1);
-
-    switch(display.connection) {
-        case DISPLAY_CONNECTION_GPIO_8BITS:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                               DISPLAY_IR_FUNCTION_SET |
-                               DISPLAY_IR_FUNCTION_SET_8BITS |
-                               DISPLAY_IR_FUNCTION_SET_2LINES |
-                               DISPLAY_IR_FUNCTION_SET_5x8DOTS);
-            HAL_Delay(1);
-        break;
-
-        case DISPLAY_CONNECTION_GPIO_4BITS:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                               DISPLAY_IR_FUNCTION_SET |
-                               DISPLAY_IR_FUNCTION_SET_4BITS);
-            HAL_Delay(1);
-
-            initial_comm_completed = true;
-
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                               DISPLAY_IR_FUNCTION_SET |
-                               DISPLAY_IR_FUNCTION_SET_4BITS |
-                               DISPLAY_IR_FUNCTION_SET_2LINES |
-                               DISPLAY_IR_FUNCTION_SET_5x8DOTS);
-            HAL_Delay(1);
-        break;
-    }
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                       DISPLAY_IR_DISPLAY_CONTROL |
-                       DISPLAY_IR_DISPLAY_CONTROL_DISPLAY_OFF |
-                       DISPLAY_IR_DISPLAY_CONTROL_CURSOR_OFF |
-                       DISPLAY_IR_DISPLAY_CONTROL_BLINK_OFF);
-    HAL_Delay(1);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                       DISPLAY_IR_CLEAR_DISPLAY);
-    HAL_Delay(1);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                       DISPLAY_IR_ENTRY_MODE_SET |
-                       DISPLAY_IR_ENTRY_MODE_SET_INCREMENT |
-                       DISPLAY_IR_ENTRY_MODE_SET_NO_SHIFT);
-    HAL_Delay(1);
-
-    display_code_write(DISPLAY_RS_INSTRUCTION,
-                       DISPLAY_IR_DISPLAY_CONTROL |
-                       DISPLAY_IR_DISPLAY_CONTROL_DISPLAY_ON |
-                       DISPLAY_IR_DISPLAY_CONTROL_CURSOR_OFF |
-                       DISPLAY_IR_DISPLAY_CONTROL_BLINK_OFF);
-    HAL_Delay(1);
-}
-
-void display_clear(void)
-{
-    display_code_write(DISPLAY_RS_INSTRUCTION, DISPLAY_IR_CLEAR_DISPLAY);
-
-    HAL_Delay(1);
-}
-
-void display_set_cursor_pos(uint8_t x, uint8_t y)
-{
-    switch(y) {
-        case 0:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                             DISPLAY_IR_SET_DDRAM_ADDR |
-                             (DISPLAY_20x4_LINE1_FIRST_CHARACTER_ADDRESS + x));
-            //HAL_Delay(1);
-        break;
-
-        case 1:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                             DISPLAY_IR_SET_DDRAM_ADDR |
-                             (DISPLAY_20x4_LINE2_FIRST_CHARACTER_ADDRESS + x));
-            //HAL_Delay(1);
-        break;
-
-        case 2:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                              DISPLAY_IR_SET_DDRAM_ADDR |
-                              (DISPLAY_20x4_LINE3_FIRST_CHARACTER_ADDRESS + x));
-            //HAL_Delay(1);
-        break;
-
-        case 3:
-            display_code_write(DISPLAY_RS_INSTRUCTION,
-                             DISPLAY_IR_SET_DDRAM_ADDR |
-                             (DISPLAY_20x4_LINE4_FIRST_CHARACTER_ADDRESS + x));
-            //HAL_Delay(1);
-        break;
-    }
-}
-
-void display_write_string(const char *str)
-{
-    while (*str) {
-        display_code_write(DISPLAY_RS_DATA, *str++);
-    }
-}
-
-// Private functions definitions
-static void display_code_write( bool type, uint8_t data_bus )
-{
-    if (type == DISPLAY_RS_INSTRUCTION)
-    {
-        display_pin_write(DISPLAY_PIN_RS, DISPLAY_RS_INSTRUCTION);
-    }
-    else
-    {
-        display_pin_write(DISPLAY_PIN_RS, DISPLAY_RS_DATA);
-    }
-
-    display_pin_write(DISPLAY_PIN_RW, DISPLAY_RW_WRITE);
-    display_data_bus_write(data_bus);
-    systick_delay_us(DISPLAY_DEL_37US);
-}
-
-static void display_pin_write(uint8_t pin_name, int value)
-{
-    switch(display.connection)
-    {
-        /*
-        case DISPLAY_CONNECTION_GPIO_8BITS:
-            switch(pin_name)
-            {
-                case DISPLAY_PIN_D0:
-                    HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin, value);
-                break;
-                case DISPLAY_PIN_D1:
-                    HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, value);
-                break;
-                case DISPLAY_PIN_D2:
-                    HAL_GPIO_WritePin(D2_GPIO_Port, D2_Pin, value);
-                break;
-                case DISPLAY_PIN_D3:
-                    HAL_GPIO_WritePin(D3_GPIO_Port, D3_Pin, value);
-                break;
-                case DISPLAY_PIN_D4:
-                    HAL_GPIO_WritePin(D4_GPIO_Port, D4_Pin, value);
-                break;
-                case DISPLAY_PIN_D5:
-                    HAL_GPIO_WritePin(D5_GPIO_Port, D5_Pin, value);
-                break;
-                case DISPLAY_PIN_D6:
-                    HAL_GPIO_WritePin(D6_GPIO_Port, D6_Pin, value);
-                break;
-                case DISPLAY_PIN_D7:
-                    HAL_GPIO_WritePin(D7_GPIO_Port, D7_Pin, value);
-                break;
-                case DISPLAY_PIN_RS:
-                    HAL_GPIO_WritePin(D8_GPIO_Port, D8_Pin, value);
-                break;
-                case DISPLAY_PIN_EN:
-                    HAL_GPIO_WritePin(D9_GPIO_Port, D9_Pin, value);
-                break;
-                case DISPLAY_PIN_RW:
-                default: 
-                break;
-            }
-        break;
-        */
-
-        case DISPLAY_CONNECTION_GPIO_4BITS:
-            switch(pin_name)
-            {
-                case DISPLAY_PIN_D4: 
-                    HAL_GPIO_WritePin(DISPLAY_PIN_D4_PORT, DISPLAY_PIN_D4_PIN, value);
-                break;
-                case DISPLAY_PIN_D5:
-                    HAL_GPIO_WritePin(DISPLAY_PIN_D5_PORT, DISPLAY_PIN_D5_PIN, value);
-                break;
-                case DISPLAY_PIN_D6:
-                    HAL_GPIO_WritePin(DISPLAY_PIN_D6_PORT, DISPLAY_PIN_D6_PIN, value);
-                break;
-                case DISPLAY_PIN_D7:
-                    HAL_GPIO_WritePin(DISPLAY_PIN_D7_PORT, DISPLAY_PIN_D7_PIN, value);
-                break;
-                case DISPLAY_PIN_RS:
-                    HAL_GPIO_WritePin(DISPLAY_PIN_RS_PORT, DISPLAY_PIN_RS_PIN, value);
-                break;
-                case DISPLAY_PIN_EN:
-                    HAL_GPIO_WritePin(DISPLAY_PIN_EN_PORT, DISPLAY_PIN_EN_PIN, value);
-                break;
-
-                case DISPLAY_PIN_RW:
-                default:
-                break;
-            }
-        default:
-        break;
-    }
-}
-
-static void display_data_bus_write(uint8_t data_bus)
-{
-    display_pin_write(DISPLAY_PIN_EN, OFF);
-    display_pin_write(DISPLAY_PIN_D7, data_bus & 0b10000000);
-    display_pin_write(DISPLAY_PIN_D6, data_bus & 0b01000000);
-    display_pin_write(DISPLAY_PIN_D5, data_bus & 0b00100000);
-    display_pin_write(DISPLAY_PIN_D4, data_bus & 0b00010000);
-
-    switch(display.connection) 
-    {
-        case DISPLAY_CONNECTION_GPIO_8BITS:
-            display_pin_write(DISPLAY_PIN_D3, data_bus & 0b00001000);
-            display_pin_write(DISPLAY_PIN_D2, data_bus & 0b00000100);
-            display_pin_write(DISPLAY_PIN_D1, data_bus & 0b00000010);
-            display_pin_write(DISPLAY_PIN_D0, data_bus & 0b00000001);
-        break;
-
-        case DISPLAY_CONNECTION_GPIO_4BITS:
-            if (true == initial_comm_completed)
-            {
-                display_pin_write(DISPLAY_PIN_EN, ON);
-                //HAL_Delay(1);
-                systick_delay_us(DISPLAY_DEL_US);
-
-                display_pin_write(DISPLAY_PIN_EN, OFF);
-                //HAL_Delay(1);
-                systick_delay_us(DISPLAY_DEL_US);
-
-                display_pin_write(DISPLAY_PIN_D7, data_bus & 0b00001000);
-                display_pin_write(DISPLAY_PIN_D6, data_bus & 0b00000100);
-                display_pin_write(DISPLAY_PIN_D5, data_bus & 0b00000010);
-                display_pin_write(DISPLAY_PIN_D4, data_bus & 0b00000001);
-            }
-        default:
-        break;
-    }
-
-    display_pin_write(DISPLAY_PIN_EN, ON);
-    //HAL_Delay(1);
-    systick_delay_us(DISPLAY_DEL_US);
-
-    display_pin_write(DISPLAY_PIN_EN, OFF);
-    //HAL_Delay(1);
-    systick_delay_us(DISPLAY_DEL_US);
-}