Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: TextLCD.h
- Revision:
- 1:ac48b187213c
- Parent:
- 0:edfb85c53631
- Child:
- 2:227356c7d12c
diff -r edfb85c53631 -r ac48b187213c TextLCD.h
--- a/TextLCD.h Sat May 22 18:18:19 2010 +0000
+++ b/TextLCD.h Thu May 27 13:44:15 2010 +0000
@@ -1,48 +1,71 @@
-/* mbed TextLCD Library, for a 4-bit 2x16 LCD
- * Copyright (c) 2007-2010, sford
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#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);
- virtual void character(int column, int row, int c);
- virtual int rows();
- virtual int columns();
-
- // locate, cls, putc, printf come from derived classes
-
-protected:
-
- void writeByte(int value);
- void writeCommand(int command);
- void writeData(int data);
-
- DigitalOut _rw, _rs, _e;
- BusOut _d;
-};
-
-#endif
+/* mbed TextLCD Library, for a 4-bit LCD based on HD44780
+ * Copyright (c) 2007-2010, sford
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MBED_TEXTLCD_H
+#define MBED_TEXTLCD_H
+
+#include "mbed.h"
+class TextLCD : public Stream {
+public:
+
+ // the different LCDs and addressing modes
+ /** Select the type of LCD */
+ enum LCDType {
+ LCD16x2
+ , LCD16x2B
+ , LCD20x2
+ , LCD20x4
+ };
+
+ TextLCD(PinName rs, PinName e, PinName d0, PinName d1, PinName d2, PinName d3, LCDType type = LCD16x2);
+ // int putc(int c) inherited from Stream
+ // int printf(...) inherited from Stream
+ void character(int column, int row, int c);
+ void locate(int column, int row);
+ void cls();
+
+ int rows();
+ int columns();
+
+
+protected:
+
+ // Stream implementation functions
+ virtual int _putc(int value);
+ virtual int _getc();
+
+ // internal tx functions
+ void writeByte(int value);
+ void writeCommand(int command);
+ void writeData(int data);
+ int address(int column, int row);
+
+ DigitalOut _rs, _e;
+ BusOut _d;
+ LCDType _type;
+
+ // current row/column
+ int _column;
+ int _row;
+};
+
+#endif