aboutsummaryrefslogtreecommitdiffstats
path: root/sw/deps/hd44780-driver/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sw/deps/hd44780-driver/src/lib.rs')
-rw-r--r--sw/deps/hd44780-driver/src/lib.rs32
1 files changed, 31 insertions, 1 deletions
diff --git a/sw/deps/hd44780-driver/src/lib.rs b/sw/deps/hd44780-driver/src/lib.rs
index 5211346..44421ce 100644
--- a/sw/deps/hd44780-driver/src/lib.rs
+++ b/sw/deps/hd44780-driver/src/lib.rs
@@ -438,7 +438,37 @@ where
// Wait for the command to be processed
delay.delay_us(100);
- self.bus.write(0x28, false, delay)?;
+ /* Taken from Arduino's LiquidCrystal.cpp
+ const LCD_FUNCTIONSET : u8 = 0x20;
+ const LCD_2LINE : u8 = 0x08;
+ const LCD_5X8DOTS : u8 = 0x00;
+ let display_function = LCD_FUNCTIONSET | LCD_2LINE | LCD_5X8DOTS;
+ self.bus.write(display_function, false, delay)?;
+ delay.delay_ms(2);
+
+ // turn the display on with no cursor or blinking default
+ const LCD_DISPLAYCONTROL : u8 = 0x08;
+ const LCD_DISPLAYON : u8 = 0x04;
+ const LCD_BLINKOFF : u8 = 0x00;
+ const LCD_CURSOROFF : u8 = 0x00;
+ let display_control = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;
+ self.bus.write(LCD_DISPLAYCONTROL | display_control, false, delay)?;
+ delay.delay_ms(2);
+
+ const LCD_ENTRYLEFT : u8 = 0x02;
+ const LCD_ENTRYSHIFTDECREMENT : u8 = 0x00;
+ const LCD_ENTRYMODESET : u8 = 0x04;
+ self.bus.write(LCD_ENTRYMODESET | LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT, false, delay)?;
+ delay.delay_ms(2);
+
+
+ // Clear Display
+ const LCD_CLEARDISPLAY : u8 = 0x01;
+ self.bus.write(LCD_CLEARDISPLAY, false, delay)?;
+ delay.delay_ms(2);
+ */
+
+ self.bus.write(0x28, false, delay)?;
// Wait for the command to be processed
delay.delay_us(100);