A TextDisplay driver that supports graphical displays using on of the SED133x conrtrolers. Allows stdout and stderr output to be redirected to the display.

Committer:
llagendijk
Date:
Sat Jan 29 21:28:42 2011 +0000
Revision:
9:68ad299df12b
Parent:
8:66be6a696e4e
First release of my version of TextDisPlay

Who changed what in which revision?

UserRevisionLine numberNew contents of line
llagendijk 0:9e72c57b16fd 1 /* mbed TextLCD Library Base Class
llagendijk 0:9e72c57b16fd 2 * Copyright (c) 2007-2009 sford
llagendijk 0:9e72c57b16fd 3 * Released under the MIT License: http://mbed.org/license/mit
llagendijk 0:9e72c57b16fd 4 * Modified by Ned Konz to provide better support for 4-line LCDs and ones with other controller chips.
llagendijk 0:9e72c57b16fd 5 */
llagendijk 0:9e72c57b16fd 6 #include "TextDisplay.h"
llagendijk 0:9e72c57b16fd 7
llagendijk 0:9e72c57b16fd 8 #ifndef MBED_TEXTLCD_H
llagendijk 0:9e72c57b16fd 9 #define MBED_TEXTLCD_H
llagendijk 6:2f8aed3d2be4 10 /** TextLCD Textdisplay
llagendijk 6:2f8aed3d2be4 11 *
llagendijk 6:2f8aed3d2be4 12 * Example:
llagendijk 6:2f8aed3d2be4 13 * @code
llagendijk 6:2f8aed3d2be4 14 / simple test for TextDisplay class, untested
llagendijk 6:2f8aed3d2be4 15 #include "mbed.h"
llagendijk 6:2f8aed3d2be4 16 #include "TextLCD.h"
llagendijk 6:2f8aed3d2be4 17
llagendijk 6:2f8aed3d2be4 18 TextLCD lcd(p5, p6, p7, p8, p9, p28, p27, 4, 20, "lcd");
llagendijk 6:2f8aed3d2be4 19
llagendijk 6:2f8aed3d2be4 20
llagendijk 6:2f8aed3d2be4 21 int main() {
llagendijk 6:2f8aed3d2be4 22 lcd.printf("Hello TextDisplay world!\r\n");
llagendijk 6:2f8aed3d2be4 23 lcd.claim(stdout);
llagendijk 6:2f8aed3d2be4 24 printf("hello stream world\r\n");
llagendijk 6:2f8aed3d2be4 25 }
llagendijk 0:9e72c57b16fd 26
llagendijk 6:2f8aed3d2be4 27 * @endcode
llagendijk 6:2f8aed3d2be4 28 */
llagendijk 0:9e72c57b16fd 29 class TextLCD : public TextDisplay {
llagendijk 0:9e72c57b16fd 30 public:
llagendijk 6:2f8aed3d2be4 31 /** Create the TextDisplay interface
llagendijk 6:2f8aed3d2be4 32 *
llagendijk 6:2f8aed3d2be4 33 * @param rs PinName for reset
llagendijk 6:2f8aed3d2be4 34 * @param rw PinName for read/write
llagendijk 6:2f8aed3d2be4 35 * @param e PinName for enable
llagendijk 6:2f8aed3d2be4 36 * @param d0-d3 PinName for D0 -D3
llagendijk 8:66be6a696e4e 37 * @param rows number of rows on the display
llagendijk 8:66be6a696e4e 38 * @param columns number of colums on the display
llagendijk 8:66be6a696e4e 39 * @param name name to be used in pathname of the stream
llagendijk 6:2f8aed3d2be4 40 */
llagendijk 0:9e72c57b16fd 41 TextLCD(PinName rs, PinName rw, PinName e,
llagendijk 0:9e72c57b16fd 42 PinName d0, PinName d1, PinName d2, PinName d3,
llagendijk 6:2f8aed3d2be4 43 uint16_t rows = 2, uint16_t columns = 16, const char *name = "textlcd");
llagendijk 0:9e72c57b16fd 44 virtual void character(uint16_t column, uint16_t row, int c);
llagendijk 0:9e72c57b16fd 45 virtual uint16_t rows() {
llagendijk 0:9e72c57b16fd 46 return _rows;
llagendijk 0:9e72c57b16fd 47 }
llagendijk 0:9e72c57b16fd 48 virtual uint16_t columns() {
llagendijk 0:9e72c57b16fd 49 return _columns;
llagendijk 0:9e72c57b16fd 50 }
llagendijk 0:9e72c57b16fd 51 virtual void reset();
llagendijk 0:9e72c57b16fd 52 virtual void cls();
llagendijk 0:9e72c57b16fd 53
llagendijk 0:9e72c57b16fd 54 // locate, putc, printf come from parent class
llagendijk 0:9e72c57b16fd 55
llagendijk 0:9e72c57b16fd 56 protected:
llagendijk 0:9e72c57b16fd 57 void writeByte(uint16_t value);
llagendijk 0:9e72c57b16fd 58 void writeHalfByte(uint16_t value);
llagendijk 0:9e72c57b16fd 59 void writeCommand(uint16_t command);
llagendijk 0:9e72c57b16fd 60 void writeData(uint16_t data);
llagendijk 0:9e72c57b16fd 61 uint16_t readAddressAndBusy();
llagendijk 0:9e72c57b16fd 62 void waitUntilDone();
llagendijk 0:9e72c57b16fd 63
llagendijk 0:9e72c57b16fd 64 DigitalOut _rw, _rs, _e;
llagendijk 0:9e72c57b16fd 65 BusInOut _d;
llagendijk 0:9e72c57b16fd 66 uint16_t _rows, _columns;
llagendijk 0:9e72c57b16fd 67 };
llagendijk 0:9e72c57b16fd 68
llagendijk 0:9e72c57b16fd 69 #endif