NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.
LCD/LCD.h@28:ba6ca9f4def4, 2012-12-01 (annotated)
- Committer:
- maetugr
- Date:
- Sat Dec 01 07:13:04 2012 +0000
- Revision:
- 28:ba6ca9f4def4
- Parent:
- 2:93f703d2c4d7
bevor eigener PID
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 0:0c4fafa398b4 | 1 | /* mbed LCD Library, for a 4-bit LCD based on HD44780 |
maetugr | 0:0c4fafa398b4 | 2 | * Copyright (c) 2007-2010, hb9gaa |
maetugr | 0:0c4fafa398b4 | 3 | */ |
maetugr | 0:0c4fafa398b4 | 4 | |
maetugr | 2:93f703d2c4d7 | 5 | #ifndef LCD_H |
maetugr | 2:93f703d2c4d7 | 6 | #define LCD_H |
maetugr | 0:0c4fafa398b4 | 7 | |
maetugr | 0:0c4fafa398b4 | 8 | #include "mbed.h" |
maetugr | 0:0c4fafa398b4 | 9 | |
maetugr | 0:0c4fafa398b4 | 10 | class TextLCD : public Stream { |
maetugr | 0:0c4fafa398b4 | 11 | public: |
maetugr | 0:0c4fafa398b4 | 12 | |
maetugr | 0:0c4fafa398b4 | 13 | /** LCD panel format */ |
maetugr | 0:0c4fafa398b4 | 14 | enum LCDType { |
maetugr | 0:0c4fafa398b4 | 15 | LCD16x2 /**< 16x2 LCD panel (default) */ |
maetugr | 0:0c4fafa398b4 | 16 | , LCD16x2B /**< 16x2 LCD panel alternate addressing */ |
maetugr | 0:0c4fafa398b4 | 17 | , LCD20x2 /**< 20x2 LCD panel */ |
maetugr | 0:0c4fafa398b4 | 18 | , LCD20x4 /**< 20x4 LCD panel */ |
maetugr | 0:0c4fafa398b4 | 19 | }; |
maetugr | 0:0c4fafa398b4 | 20 | |
maetugr | 0:0c4fafa398b4 | 21 | /** Create a TextLCD interface |
maetugr | 0:0c4fafa398b4 | 22 | * @param rs Instruction/data control line |
maetugr | 0:0c4fafa398b4 | 23 | * @param e Enable line (clock) |
maetugr | 0:0c4fafa398b4 | 24 | * @param d0-d3 Data lines |
maetugr | 0:0c4fafa398b4 | 25 | * @param type Sets the panel size/addressing mode (default = LCD16x2) |
maetugr | 0:0c4fafa398b4 | 26 | */ |
maetugr | 0:0c4fafa398b4 | 27 | TextLCD(PinName rs, PinName rw, PinName e, PinName d0, PinName d1, PinName d2, PinName d3, LCDType type = LCD16x2); |
maetugr | 0:0c4fafa398b4 | 28 | |
maetugr | 0:0c4fafa398b4 | 29 | #if DOXYGEN_ONLY |
maetugr | 0:0c4fafa398b4 | 30 | /** Write a character to the LCD |
maetugr | 0:0c4fafa398b4 | 31 | * @param c The character to write to the display |
maetugr | 0:0c4fafa398b4 | 32 | */ |
maetugr | 0:0c4fafa398b4 | 33 | int putc(int c); |
maetugr | 0:0c4fafa398b4 | 34 | |
maetugr | 0:0c4fafa398b4 | 35 | /** Write a formated string to the LCD |
maetugr | 0:0c4fafa398b4 | 36 | * @param format A printf-style format string, followed by the |
maetugr | 0:0c4fafa398b4 | 37 | * variables to use in formating the string. |
maetugr | 0:0c4fafa398b4 | 38 | */ |
maetugr | 0:0c4fafa398b4 | 39 | int printf(const char* format, ...); |
maetugr | 0:0c4fafa398b4 | 40 | #endif |
maetugr | 0:0c4fafa398b4 | 41 | |
maetugr | 0:0c4fafa398b4 | 42 | /** Locate to a screen column and row |
maetugr | 0:0c4fafa398b4 | 43 | * @param column The horizontal position from the left, indexed from 0 |
maetugr | 0:0c4fafa398b4 | 44 | * @param row The vertical position from the top, indexed from 0 |
maetugr | 0:0c4fafa398b4 | 45 | */ |
maetugr | 0:0c4fafa398b4 | 46 | void locate(int column, int row); |
maetugr | 0:0c4fafa398b4 | 47 | |
maetugr | 0:0c4fafa398b4 | 48 | /** Clear the screen and locate to 0,0 */ |
maetugr | 0:0c4fafa398b4 | 49 | void cls(); |
maetugr | 0:0c4fafa398b4 | 50 | |
maetugr | 0:0c4fafa398b4 | 51 | int rows(); |
maetugr | 0:0c4fafa398b4 | 52 | int columns(); |
maetugr | 0:0c4fafa398b4 | 53 | |
maetugr | 0:0c4fafa398b4 | 54 | protected: |
maetugr | 0:0c4fafa398b4 | 55 | |
maetugr | 0:0c4fafa398b4 | 56 | // Stream implementation functions |
maetugr | 0:0c4fafa398b4 | 57 | virtual int _putc(int value); |
maetugr | 0:0c4fafa398b4 | 58 | virtual int _getc(); |
maetugr | 0:0c4fafa398b4 | 59 | |
maetugr | 0:0c4fafa398b4 | 60 | int address(int column, int row); |
maetugr | 0:0c4fafa398b4 | 61 | void character(int column, int row, int c); |
maetugr | 0:0c4fafa398b4 | 62 | void writeByte(int value); |
maetugr | 0:0c4fafa398b4 | 63 | void writeCommand(int command); |
maetugr | 0:0c4fafa398b4 | 64 | void writeData(int data); |
maetugr | 0:0c4fafa398b4 | 65 | |
maetugr | 0:0c4fafa398b4 | 66 | DigitalOut _rs, _rw, _e; |
maetugr | 0:0c4fafa398b4 | 67 | BusOut _d; |
maetugr | 0:0c4fafa398b4 | 68 | LCDType _type; |
maetugr | 0:0c4fafa398b4 | 69 | |
maetugr | 0:0c4fafa398b4 | 70 | int _column; |
maetugr | 0:0c4fafa398b4 | 71 | int _row; |
maetugr | 0:0c4fafa398b4 | 72 | }; |
maetugr | 0:0c4fafa398b4 | 73 | |
maetugr | 0:0c4fafa398b4 | 74 | #endif |