This is an old revision of the document!
LCD
The LCD character display can be used in three different ways:
- Output ASCII characters over a simple LCD controller
- Output binary values in HEX representation (max. 128 bit)
- Access the display directly over the I²C interface
Each colour of the background light is controlled by a 16 bit PWM controller.
ASCII Interface
The integrated LCD controller must allways be accessed with 16 bit half words!
Programming Example
The code snippet bellow shows how to use the ASCII interface of the LCD.
#include "reg_ctboard.h" CT_LCD->ASCII = (uint16_t) ((13u << 8u) | ascii_char); /* Write ascii_char at position 13 on the LCD. */
ADDR_LCD_ASCII EQU 0x60000310 LDR r0, =ADDR_LCD_ASCII LDR r1, #13 ; Load position on display into r1. LDR r2, "E" ; Load value of ASCII char 'E' into r2. ; Thumb instruction set LSLS r1, #8 ; Shift position 8 bits to the left ORRS r2, r1 ; Combine position with ASCII character ; ARM instruction set ORRS r2, r1, LSL #8 ; Shift and combine position value with ASCII character STRH r2, [r0, #0] ; Write ascii_char at position 13 on the LCD.
Registers
Display Positions
Binary Interface
The binary interface can be used to display binary values in HEX representation.
A maximum of 128 bits can be displayed.
Programming Example
The code snippet bellow shows how to use the ASCII interface of the LCD.
#include "reg_ctboard.h" CT_LCD->BIN.BYTE.B7_0 = (uint8_t) data_byte; /* Write byte of data to LCD. */ CT_LCD->BIN.HWORD.B15_0 = (uint16_t) data_halfword; /* Write halfword of data to LCD. */ CT_LCD->BIN.WORD.B31_0 = (uint32_t) data_word; /* Write word of data to LCD. */ CT_LCD->BIN.DWORD = (uint64_t) data_doubleword; /* Write doubleword of data to LCD. */
Registers
Display Positions
I²C Interface
Background Light
Each colour of the background light is controlled by a 16 bit PWM generator.
The brightness can be regulated from 0x0000 (0% / off) to 0xffff (100%). To adapt the brightness curve to the human eye a adadption to a logarithmic scale has to be done manually.
Programming Example
The code snippet bellow shows how to set the background light on the LCD.
#include "reg_ctboard.h" CT_LCD->BG.RED = (uint16_t) data_halfword; /* Set PWM value for red background light. */ CT_LCD->BG.GREEN = (uint16_t) data_halfword; /* Set PWM value for green background light. */ CT_LCD->BG.BLUE = (uint16_t) data_halfword; /* Set PWM value for blue background light. */
ADDR_LCD_BG EQU 0x60000304 STRH r1, [r0, #0] ; Set PWM value for red background light. STRH r1, [r0, #2] ; Set PWM value for green background light. STRH r1, [r0, #4] ; Set PWM value for blue background light.