uint8_t lcd_read(uint8_t rs) { __IO uint8_t data; if(rs) { //read data lcd_rs_high(); } else { //read busy flag lcd_rs_low(); } lcd_rw_high(); // read mode //set data pins to input GPIO_InitStructure.GPIO_Pin = DATA_PORT_Pin_0 | DATA_PORT_Pin_1 | DATA_PORT_Pin_2 | DATA_PORT_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_Init(LCD_PORT, &GPIO_InitStructure); //read 2 nibbles lcd_e_high(); //enable lcd_e_delay(); data = (uint8_t)GPIO_ReadInputData(LCD_PORT) << 4; lcd_e_low(); //disable lcd_e_delay(); lcd_e_high(); //enable lcd_e_delay(); data |= (uint8_t)GPIO_ReadInputData(LCD_PORT) & 0x0F; lcd_e_low(); //disable return data; }
void lcd_e_toggle() { lcd_e_low(); lcd_e_delay(); lcd_e_high(); lcd_e_delay(); lcd_e_low(); Delay(100); }
static void toggle_e(const HD44780* device){ lcd_e_high(device); delay_us(10); lcd_e_low(device); }
//----------------------------------------------------------------------------------------- // FUNCTION: lcd_toggle_e // PURPOSE: flush channel E void lcd_toggle_e(void) { lcd_e_high(); _delay_us(10); lcd_e_low(); }
// PURPOSE: flush channel E void HD44780::lcd_toggle_e(void) { lcd_e_high(); fcpu_delay_us(10); lcd_e_low(); }