38 #if defined(GLCD_DEVICE_LPC11UXX)
43 #if defined(GLCD_CONTROLLER_PCD8544)
50 SSP_IOConfig( CONTROLLER_SPI_PORT_NUMBER );
53 SSP_Init( CONTROLLER_SPI_PORT_NUMBER );
58 CONTROLLER_SS_PORT->DIR |= (1 << CONTROLLER_SS_PIN);
59 CONTROLLER_DC_PORT->DIR |= (1 << CONTROLLER_DC_PIN);
60 CONTROLLER_RST_PORT->DIR |= (1 << CONTROLLER_RST_PIN);
87 #elif defined(GLCD_CONTROLLER_NT75451)
91 LPC_GPIO->DIR[CONTROLLER_LCD_EN_PORT] |= (1U<<CONTROLLER_LCD_EN_PIN);
92 LPC_GPIO->DIR[CONTROLLER_LCD_RW_PORT] |= (1U<<CONTROLLER_LCD_RW_PIN);
93 LPC_GPIO->DIR[CONTROLLER_LCD_RS_PORT] |= (1U<<CONTROLLER_LCD_RS_PIN);
94 LPC_GPIO->DIR[CONTROLLER_LCD_CS_PORT] |= (1U<<CONTROLLER_LCD_CS_PIN);
98 #ifdef CONTROLLER_LCD_DATA_PORT
100 LPC_GPIO->DIR[CONTROLLER_LCD_D0_PORT] |= GLCD_PARALLEL_MASK;
102 #error "Support of parallel data pins on different ports not supported."
129 #error "Controller not supported by LPC111x"
134 #if defined(GLCD_USE_PARALLEL)
137 void glcd_parallel_write(uint8_t c)
140 uint32_t port_output = \
141 ( ( (1U << 0) & c ? 1 : 0 ) << CONTROLLER_LCD_D0_PIN ) | \
142 ( ( (1U << 1) & c ? 1 : 0 ) << CONTROLLER_LCD_D1_PIN ) | \
143 ( ( (1U << 2) & c ? 1 : 0 ) << CONTROLLER_LCD_D2_PIN ) | \
144 ( ( (1U << 3) & c ? 1 : 0 ) << CONTROLLER_LCD_D3_PIN ) | \
145 ( ( (1U << 4) & c ? 1 : 0 ) << CONTROLLER_LCD_D4_PIN ) | \
146 ( ( (1U << 5) & c ? 1 : 0 ) << CONTROLLER_LCD_D5_PIN ) | \
147 ( ( (1U << 6) & c ? 1 : 0 ) << CONTROLLER_LCD_D6_PIN ) | \
148 ( ( (1U << 7) & c ? 1 : 0 ) << CONTROLLER_LCD_D7_PIN );
153 LPC_GPIO->CLR[CONTROLLER_LCD_D0_PORT] |= GLCD_PARALLEL_MASK;
154 LPC_GPIO->SET[CONTROLLER_LCD_D0_PORT] |= port_output;
176 SSP_Send(CONTROLLER_SPI_PORT_NUMBER,&c,1);
184 #if defined(GLCD_CONTROLLER_PCD8544)
192 #elif defined(GLCD_CONTROLLER_NT75451)
198 void glcd_delay(uint32_t count)
#define PCD8544_FUNCTION_SET
void glcd_spi_write(uint8_t c)
Write a byte to the connected SPI slave.
void glcd_select_screen(uint8_t *buffer, glcd_BoundingBox_t *bbox)
Select screen buffer and bounding box structure.
void glcd_reset(void)
Reset the LCD.
#define PCD8544_EXTENDED_INSTRUCTION
#define PCD8544_DISPLAY_NORMAL
glcd_BoundingBox_t glcd_bbox
Keeps track of bounding box of area on LCD which need to be updated next reresh cycle.
#define PCD8544_DISPLAY_CONTROL
Implmentation of NXP LPC11Uxx microcontrollers.
void glcd_command(uint8_t c)
Send command byte to LCD.
void glcd_clear(void)
Clear the display.
uint8_t glcd_buffer[GLCD_LCD_WIDTH *GLCD_LCD_HEIGHT/8]
Screen buffer.
#define GLCD_RESET_TIME
Reset duration by glcd_reset(), in milliseconds.
void glcd_init(void)
Initialise the LCD.