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.
Dependents: ProjetoMecatronico
Diff: TextLCD.h
- Revision:
- 2:227356c7d12c
- Parent:
- 1:ac48b187213c
- Child:
- 3:2a46d5820a78
diff -r ac48b187213c -r 227356c7d12c TextLCD.h
--- a/TextLCD.h Thu May 27 13:44:15 2010 +0000
+++ b/TextLCD.h Thu May 27 17:52:15 2010 +0000
@@ -7,10 +7,10 @@
* 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
@@ -24,48 +24,90 @@
#define MBED_TEXTLCD_H
#include "mbed.h"
+
+/** A TextLCD interface for 4-bit HD44780-based LCDs
+ *
+ * Supports a number of different panel configurations
+ *
+ * @code
+ * #include "mbed.h"
+ * #include "TextLCD.h"
+ *
+ * TextLCD lcd(p5, p6, p7, p8, p9);
+ *
+ * int main() {
+ * lcd.printf("Hello World!\n");
+ * }
+ * @endcode
+ */
class TextLCD : public Stream {
public:
- // the different LCDs and addressing modes
- /** Select the type of LCD */
+ /** LCD panel format */
enum LCDType {
- LCD16x2
- , LCD16x2B
- , LCD20x2
- , LCD20x4
+ LCD16x2 /**< 16x2 LCD panel (default) */
+ , LCD16x2B /**< 16x2 LCD panel alternate addressing */
+ , LCD20x2 /**< 20x2 LCD panel */
+ , LCD20x4 /**< 20x4 LCD panel */
};
+ /** Create a TextLCD interface
+ *
+ * @param rs Instruction/data control line
+ * @param e Enable line (clock)
+ * @param d0-d3 Data lines
+ * @param type Sets the panel size/addressing mode (default = LCD16x2)
+ */
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);
+
+#if DOXYGEN_ONLY
+ /** Write a character to the LCD
+ *
+ * @param c The character to write to the display
+ */
+ int putc(int c);
+
+ /** Write a formated string to the LCD
+ *
+ * @param format A printf-style format string, followed by the
+ * variables to use in formating the string.
+ */
+ int printf(const char* format, ...);
+#endif
+
+ /** Locate to a screen column and row
+ *
+ * @param column The horizontal position from the left, indexed from 0
+ * @param row The vertical position from the top, indexed from 0
+ */
void locate(int column, int row);
+
+ /** Clear the screen and locate to 0,0 */
void cls();
-
+
int rows();
- int columns();
-
-
+ int columns();
+
protected:
// Stream implementation functions
virtual int _putc(int value);
virtual int _getc();
- // internal tx functions
+ int address(int column, int row);
+ void character(int column, int row, int c);
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