From 8c2fa4ce4f53d76dfc5a3bdb99042deb514c6d66 Mon Sep 17 00:00:00 2001 From: Roger Clark Date: Sat, 31 Jan 2015 09:05:54 +1100 Subject: [PATCH] Upated LiquidCrystal files from Matthias aka @madias --- .../libraries/LiquidCrystal/LiquidCrystal.cpp | 29 ++++++++++--------- .../libraries/LiquidCrystal/LiquidCrystal.h | 4 +-- STM32F1XX/libraries/LiquidCrystal/rules.mk | 0 3 files changed, 18 insertions(+), 15 deletions(-) mode change 100644 => 100755 STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.cpp mode change 100644 => 100755 STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.h mode change 100644 => 100755 STM32F1XX/libraries/LiquidCrystal/rules.mk diff --git a/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.cpp b/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.cpp old mode 100644 new mode 100755 index 08d6323..bcec207 --- a/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.cpp +++ b/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.cpp @@ -69,17 +69,7 @@ void LiquidCrystal::init(uint8 fourbitmode, uint8 rs, uint8 rw, uint8 enable, _data_pins[5] = d5; _data_pins[6] = d6; _data_pins[7] = d7; - - for (int i = 0; i < 8 - fourbitmode * 4; i++) { - pinMode(_data_pins[i], OUTPUT); - } - - pinMode(_rs_pin, OUTPUT); - // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# - if (_rw_pin != 255) { - pinMode(_rw_pin, OUTPUT); - } - pinMode(_enable_pin, OUTPUT); + displaymode=fourbitmode; if (fourbitmode) _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; @@ -87,10 +77,22 @@ void LiquidCrystal::init(uint8 fourbitmode, uint8 rs, uint8 rw, uint8 enable, _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; // TODO: bnewbold, re-enable this? - begin(16, 1); +// begin(16, 1); } void LiquidCrystal::begin(uint8 cols, uint8 lines, uint8 dotsize) { + + for (int i = 0; i < 8 - displaymode * 4; i++) { + //for (int i = 0; i <4; i++) { + pinMode(_data_pins[i], OUTPUT); + } + + pinMode(_rs_pin, OUTPUT); + // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# + if (_rw_pin != 255) { + pinMode(_rw_pin, OUTPUT); + } + pinMode(_enable_pin, OUTPUT); if (lines > 1) { _displayfunction |= LCD_2LINE; } @@ -275,8 +277,9 @@ inline void LiquidCrystal::command(uint8 value) { send(value, LOW); } -inline void LiquidCrystal::write(uint8 value) { +inline size_t LiquidCrystal::write(uint8 value) { send(value, HIGH); + return 1; } /************ low level data pushing commands **********/ diff --git a/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.h b/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.h old mode 100644 new mode 100755 index c3d0166..f81d09e --- a/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.h +++ b/STM32F1XX/libraries/LiquidCrystal/LiquidCrystal.h @@ -80,14 +80,14 @@ public: void createChar(uint8, uint8[]); void setCursor(uint8, uint8); - virtual void write(uint8); + virtual size_t write(uint8); void command(uint8); private: void send(uint8, uint8); void write4bits(uint8); void write8bits(uint8); void pulseEnable(); - + uint8 displaymode; uint8 _rs_pin; // LOW: command. HIGH: character. uint8 _rw_pin; // LOW: write to LCD. HIGH: read from LCD. uint8 _enable_pin; // activated by a HIGH pulse. diff --git a/STM32F1XX/libraries/LiquidCrystal/rules.mk b/STM32F1XX/libraries/LiquidCrystal/rules.mk old mode 100644 new mode 100755