|
cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
|
Implementacion del driver para LCD alfanumerico. More...
Include dependency graph for lcd_driver.c:Go to the source code of this file.
Macros | |
| #define | LCD_PORT 4 |
| #define | LCD4 10 |
| LCD4 = D7 on lcd pinout. | |
| #define | LCD3 6 |
| LCD3 = D6 on lcd pinout. | |
| #define | LCD2 5 |
| LCD2 = D5 on lcd pinout. | |
| #define | LCD1 4 |
| LCD1 = D4 on lcd pinout. | |
| #define | LCD_RS 8 |
| #define | LCD_EN 9 |
| #define | LCD_IS_DATA 1 |
| #define | LCD_IS_COMMAND 0 |
Functions | |
| void | lcd_send (uint8_t nibble, bool is_data) |
| void | send_byte (uint8_t payload, bool data_type) |
| void | driver_lcd_init_port () |
| void | driver_lcd_init (void) |
| Inicializa el LCD y ejecuta la secuencia de arranque. | |
| void | driver_lcd_set_position (uint8_t x, uint8_t y) |
| Posiciona el cursor dentro de la matriz visible del LCD. | |
| void | driver_lcd_write_char (char C) |
| Escribe un caracter en la posicion actual del LCD. | |
| void | driver_lcd_printf (const char *string) |
| Escribe una cadena a partir de la posicion actual del cursor. | |
| #define LCD1 4 |
Definition at line 13 of file lcd_driver.c.
| #define LCD2 5 |
Definition at line 12 of file lcd_driver.c.
| #define LCD3 6 |
Definition at line 11 of file lcd_driver.c.
| #define LCD4 10 |
Definition at line 10 of file lcd_driver.c.
| #define LCD_EN 9 |
Definition at line 15 of file lcd_driver.c.
| #define LCD_IS_COMMAND 0 |
Definition at line 18 of file lcd_driver.c.
| #define LCD_IS_DATA 1 |
Definition at line 17 of file lcd_driver.c.
| #define LCD_PORT 4 |
Definition at line 9 of file lcd_driver.c.
| #define LCD_RS 8 |
Definition at line 14 of file lcd_driver.c.
| void driver_lcd_init | ( | void | ) |
Secuencia estandar de arranque HD44780 en modo 4 bits.
Las escrituras repetidas de 0x03 fuerzan al controlador a un estado conocido antes de conmutar definitivamente a 0x02.
Definition at line 94 of file lcd_driver.c.
References driver_delay_init(), driver_delay_ms(), driver_lcd_init_port(), LCD_IS_COMMAND, lcd_send(), and send_byte().
Referenced by app_init().
| void driver_lcd_init_port | ( | ) |
Definition at line 65 of file lcd_driver.c.
References LCD1, LCD2, LCD3, LCD4, LCD_EN, LCD_PORT, and LCD_RS.
Referenced by driver_lcd_init().
| void driver_lcd_printf | ( | const char * | string | ) |
| string | Cadena a imprimir. |
Definition at line 157 of file lcd_driver.c.
References driver_lcd_write_char().
Referenced by hmi_escribir_linea().
| void driver_lcd_set_position | ( | uint8_t | x, |
| uint8_t | y | ||
| ) |
| x | Columna, en el rango 1 a 16. |
| y | Fila, en el rango 1 a 2. |
Definition at line 128 of file lcd_driver.c.
References LCD_IS_COMMAND, and send_byte().
Referenced by hmi_escribir_linea().
| void driver_lcd_write_char | ( | char | c | ) |
| c | Caracter a escribir o caracter de control soportado por el driver. |
Definition at line 139 of file lcd_driver.c.
References driver_delay_ms(), LCD_IS_COMMAND, LCD_IS_DATA, and send_byte().
Referenced by driver_lcd_printf(), and hmi_init().
| void lcd_send | ( | uint8_t | nibble, |
| bool | is_data | ||
| ) |
El controlador toma el nibble en el flanco de EN.
Por eso el ancho del pulso y el retardo posterior son parte del protocolo del LCD, no esperas opcionales.
Definition at line 20 of file lcd_driver.c.
References driver_delay_us(), LCD1, LCD2, LCD3, LCD4, LCD_EN, and LCD_RS.
Referenced by driver_lcd_init(), and send_byte().
| void send_byte | ( | uint8_t | payload, |
| bool | data_type | ||
| ) |
El LCD esta cableado en modo de 4 bits.
Cada byte se transmite en dos pasos: primero el nibble alto y luego el nibble bajo.
Definition at line 50 of file lcd_driver.c.
References lcd_send().
Referenced by driver_lcd_init(), driver_lcd_set_position(), and driver_lcd_write_char().