diff --git a/src/driver/hd44780/adapter.rs b/src/driver/hd44780/adapter.rs index d8401d6..ebe4c25 100644 --- a/src/driver/hd44780/adapter.rs +++ b/src/driver/hd44780/adapter.rs @@ -51,7 +51,9 @@ where self.send_command_to_controller(controller, LCD_CMD_DISPLAYCONTROL | display_control)?; self.send_command_to_controller(controller, LCD_CMD_ENTRYMODESET | display_mode)?; self.send_command_to_controller(controller, LCD_CMD_CLEARDISPLAY)?; + self.device_config().delay.delay_ms(2); self.send_command_to_controller(controller, LCD_CMD_RETURNHOME)?; + self.device_config().delay.delay_ms(2); } // set up the display self.set_backlight(true)?; @@ -143,8 +145,10 @@ where self.set_rs(rs_setting); self.set_rw(false); - // now write the low nibble self.set_data(value & 0x0F); + // first write value without the enable strobe + // to ensure that the address set-up time t_AS = 40 ns is observed + self.write_bits_to_gpio()?; self.set_enable(true, controller)?; self.write_bits_to_gpio()?; self.set_enable(false, controller)?;