Improved version of Simon Ford's TextDisplay library, with addressing and timing fixes. Supports up to 20x4 text displays.
Diff: TextLCD.h
- Revision:
- 0:2c5bba968d7c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.h Sun Feb 14 00:28:08 2010 +0000
@@ -0,0 +1,37 @@
+/* mbed TextLCD Library Base Class
+ * Copyright (c) 2007-2009 sford
+ * Released under the MIT License: http://mbed.org/license/mit
+ * Modified by Ned Konz to provide better support for 4-line LCDs and ones with other controller chips.
+ */
+#include "TextDisplay.h"
+
+#ifndef MBED_TEXTLCD_H
+#define MBED_TEXTLCD_H
+
+class TextLCD : public TextDisplay {
+ public:
+ TextLCD(PinName rs, PinName rw, PinName e,
+ PinName d0, PinName d1, PinName d2, PinName d3,
+ uint16_t rows = 2, uint16_t columns = 16);
+ virtual void character(uint16_t column, uint16_t row, int c);
+ virtual uint16_t rows() { return _rows; }
+ virtual uint16_t columns() { return _columns; }
+ virtual void reset();
+ virtual void cls();
+
+ // locate, putc, printf come from parent class
+
+ protected:
+ void writeByte(uint16_t value);
+ void writeHalfByte(uint16_t value);
+ void writeCommand(uint16_t command);
+ void writeData(uint16_t data);
+ uint16_t readAddressAndBusy();
+ void waitUntilDone();
+
+ DigitalOut _rw, _rs, _e;
+ BusInOut _d;
+ uint16_t _rows, _columns;
+};
+
+#endif
Ned Konz