Improved version of Simon Ford's TextDisplay library, with addressing and timing fixes. Supports up to 20x4 text displays.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TextLCD.h Source File

TextLCD.h

00001 /* mbed TextLCD Library Base Class
00002  * Copyright (c) 2007-2009 sford
00003  * Released under the MIT License: http://mbed.org/license/mit
00004  * Modified by Ned Konz to provide better support for 4-line LCDs and ones with other controller chips.
00005  */
00006 #include "TextDisplay.h"
00007 
00008 #ifndef MBED_TEXTLCD_H
00009 #define MBED_TEXTLCD_H
00010 
00011 class TextLCD : public TextDisplay {
00012     public:
00013         TextLCD(PinName rs, PinName rw, PinName e,
00014                 PinName d0, PinName d1, PinName d2, PinName d3,
00015                 uint16_t rows = 2, uint16_t columns = 16);
00016         virtual void character(uint16_t column, uint16_t row, int c);
00017         virtual uint16_t rows() { return _rows; }
00018         virtual uint16_t columns() { return _columns; }
00019         virtual void reset();
00020         virtual void cls();
00021 
00022         // locate, putc, printf come from parent class
00023 
00024     protected:
00025         void writeByte(uint16_t value);
00026         void writeHalfByte(uint16_t value);
00027         void writeCommand(uint16_t command);
00028         void writeData(uint16_t data);
00029         uint16_t readAddressAndBusy();
00030         void waitUntilDone();
00031 
00032         DigitalOut _rw, _rs, _e;
00033         BusInOut _d;
00034         uint16_t _rows, _columns;
00035 };
00036 
00037 #endif