Interfaz con el LCD
Comenzamos describiendo cómo nos comunicamos con el LCD. Los dos pines más importantes son los de MOSI (o data) y D/C (Datos/Comandos). El es por dónde el LCD recibe los datos mediante un protocolo SPI, el segundo pin indica cuando el dato enviado es un valor de un pixel o un comando de control del LCD. La pantalla tiene un pequeño conjunto de comandos sencillos para seleccionar la posición del pixel a escribir, variar el contraste, invertir o borrar la pantalla, etc.Independencia
Esta biblioteca no depende del Hardware donde se utilice. Esto se consigue delegando la implementación de todas las funcionalidades dependientes del Hardware al usuario. Así, el uso de la biblioteca no está limitado a una Hardware en particular. Para adaptarlo a una u otra placa de desarrollo hay que implementar las funciones de la cabecera "lsd_bsp.h". Internamente, la biblioteca utilizará esta funciones para controlar la pantalla.Las funciones principales que se delegan son las tres siguientes:
- void LCD_BSP_send(uint8_t* data, uint16_t size): El envío de datos mediante protocolo SPI. Esta cabecera junto con las funciones de espera, permite al usuario una total libertad a al hora de elegir la forma de enviar los datos (SPI, SPI+DMA, bit banging...).
- void LCD_BSP_waitUntilTXA(): Esperar hasta que se permita una nueva transmisión. Delegar las funciones de espera son el fundamento del soporte para RTOS.
- void LCD_BSP_waitUntilTXC(): Esperar hasta que se haya completado la transmisión. Delegar las funciones de espera son el fundamento del soporte para RTOS.
También es necesario implementar las siguientes funciones para el manejo de pines e inicialización:
- void LCD_BSP_init(): Permite al usuario inicializar los periféricos que vaya a necesitar: SPI, DMA, timer, etc
- void LCD_BSP_RST(): Debido a que es necesario gernerar un pulso de una determinada duración, en un pin específico; se delega la implementación de esta acción.
- void LCD_BSP_setCE(uint8_t state): Establecer el estado (voltaje alto o bajo) del pin CE es una acción dependiente del Hardware.
- void LCD_BSP_setD_C(uint8_t state): Establecer el estado (voltaje alto o bajo) del pin D/C es una acción dependiente del Hardware.
- void LCD_BSP_setLIGHT(uint8_t state): Muchas pantallas vienen con unos LEDs para iluminarla. Si se desea, se debe implementar el control de los mismos.
No hay comentarios:
Publicar un comentario