From 4b2b39e383d7fec0f94deb0f9a75a493bce2d0ca Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Wed, 7 May 2008 18:24:49 +0000 Subject: Changing Print class to use regular virtual write() function (instead of my hack ed together version). --- libraries/LiquidCrystal/LiquidCrystal.cpp | 18 +++++++++--------- libraries/LiquidCrystal/LiquidCrystal.h | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'libraries/LiquidCrystal') diff --git a/libraries/LiquidCrystal/LiquidCrystal.cpp b/libraries/LiquidCrystal/LiquidCrystal.cpp index c5acc85..b5f2cd4 100755 --- a/libraries/LiquidCrystal/LiquidCrystal.cpp +++ b/libraries/LiquidCrystal/LiquidCrystal.cpp @@ -26,7 +26,7 @@ LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) : Print(baseWrite), + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) : _four_bit_mode(0), _rs_pin(rs), _rw_pin(rw), _enable_pin(enable) { _data_pins[0] = d0; @@ -52,7 +52,7 @@ LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, } LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) : Print(baseWrite), + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) : _four_bit_mode(1), _rs_pin(rs), _rw_pin(rw), _enable_pin(enable) { _data_pins[0] = d0; @@ -91,11 +91,15 @@ void LiquidCrystal::setCursor(int col, int row) command(0x80 | (col + row_offsets[row])); } -void LiquidCrystal::command(int value) { - write(value, LOW); +void LiquidCrystal::command(uint8_t value) { + send(value, LOW); } -void LiquidCrystal::write(int value, int mode) { +void LiquidCrystal::write(uint8_t value) { + send(value, HIGH); +} + +void LiquidCrystal::send(uint8_t value, uint8_t mode) { digitalWrite(_rs_pin, mode); digitalWrite(_rw_pin, LOW); @@ -122,7 +126,3 @@ void LiquidCrystal::write(int value, int mode) { digitalWrite(_enable_pin, LOW); } } - -void baseWrite(uint8_t value, void *instance) { - ((LiquidCrystal *) instance)->write(value); -} diff --git a/libraries/LiquidCrystal/LiquidCrystal.h b/libraries/LiquidCrystal/LiquidCrystal.h index c4746c5..a5edc5f 100755 --- a/libraries/LiquidCrystal/LiquidCrystal.h +++ b/libraries/LiquidCrystal/LiquidCrystal.h @@ -16,9 +16,11 @@ public: void shiftDisplayLeft(); void shiftDisplayRight(); */ - void write(int, int = 1); - void command(int); + virtual void write(uint8_t); + void command(uint8_t); private: + void send(uint8_t, uint8_t); + uint8_t _four_bit_mode; uint8_t _rs_pin; // LOW: command. HIGH: character. uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. @@ -26,6 +28,4 @@ private: uint8_t _data_pins[8]; }; -void baseWrite(uint8_t, void *); - #endif -- cgit v1.2.3-18-g5258