From a51aece7a85d0d8d464c1f529cbdd040a6d8874c Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Sun, 10 Jun 2012 10:16:59 +1000 Subject: [PATCH] Update LiquidCrystal.* copy to work with 1.0 Print::write() has a new signature in Arduino 1.0. --- libraries/LCD/utility/LiquidCrystal.cpp | 13 ++++++++++++- libraries/LCD/utility/LiquidCrystal.h | 6 ++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/libraries/LCD/utility/LiquidCrystal.cpp b/libraries/LCD/utility/LiquidCrystal.cpp index 6150486e..81f3a5b2 100644 --- a/libraries/LCD/utility/LiquidCrystal.cpp +++ b/libraries/LCD/utility/LiquidCrystal.cpp @@ -177,7 +177,7 @@ void LiquidCrystal::home() void LiquidCrystal::setCursor(uint8_t col, uint8_t row) { int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; - if ( row > _numlines ) { + if ( row >= _numlines ) { row = _numlines-1; // we count rows starting w/0 } @@ -262,10 +262,21 @@ inline void LiquidCrystal::command(uint8_t value) { send(value, LOW); } +#if defined(ARDUINO) && ARDUINO >= 100 + +inline size_t LiquidCrystal::write(uint8_t value) { + send(value, HIGH); + return 1; // assume sucess +} + +#else + inline void LiquidCrystal::write(uint8_t value) { send(value, HIGH); } +#endif + /************ low level data pushing commands **********/ // write either command or data, with automatic 4/8-bit selection diff --git a/libraries/LCD/utility/LiquidCrystal.h b/libraries/LCD/utility/LiquidCrystal.h index f66ec1b4..984586e1 100644 --- a/libraries/LCD/utility/LiquidCrystal.h +++ b/libraries/LCD/utility/LiquidCrystal.h @@ -79,8 +79,14 @@ public: void createChar(uint8_t, uint8_t[]); void setCursor(uint8_t, uint8_t); +#if defined(ARDUINO) && ARDUINO >= 100 + virtual size_t write(uint8_t); +#else virtual void write(uint8_t); +#endif void command(uint8_t); + + using Print::write; private: void send(uint8_t, uint8_t); void write4bits(uint8_t);