|
LevelMeter-Display
2.0
An ultrasonic Level Meter for Stormwater Cisterns
|
Routines for handling the LC-Display. More...

Macros | |
| #define | LCD_DDR DDRC |
| #define | LCD_EN 3 |
| #define | LCD_LIGHT 0 |
| #define | LCD_PIN PINC |
| #define | LCD_PORT PORTC |
| #define | LCD_RS 1 |
| #define | LCD_RW 2 |
Functions | |
| void | InitLCD (void) |
| Initializes the LC-Display. More... | |
| bool | LCDBuildHBarChar (uint8_t nBars) |
| Builds a Bar Graph Character for horizontal Bars. More... | |
| bool | LCDBuildVBarChar (uint8_t nBars) |
| Builds a Character for vertical Bar Graph. More... | |
| bool | LCDBuildVBarChars (uint8_t nBars) |
| Builds the Character Array for vertical Bar Graphs. More... | |
| void | LCDClear (void) |
| Clears the LCD and sets Cursor to Home Postion. More... | |
| void | LCDGoTo (uint8_t pos) |
| Sets the Cursor Position. More... | |
| int8_t | LCDHBarGraph (uint8_t line, uint8_t val) |
| Prints a Line of Bar Graph. The rest of the line is cleared. More... | |
| void | LCDInitCGRAM () |
| Initializes the Character Generator RAM. More... | |
| void | LCDPrintLine_P (uint8_t line, const char *fmt,...) |
| Printf for one complete Line of the Display. More... | |
| char | LCDRead (void) |
| Reads a Byte from the LCD. More... | |
| char | LCDReadCmd (void) |
| char | LCDReadNibble (void) |
| Reads a nibble from LCD. More... | |
| void | LCDWait (void) |
| Waits until the LCD is ready. More... | |
| void | LCDWrite (char c) |
| Writes a Byte to the Display. More... | |
| void | LCDWriteCmd (char c) |
| Writes a Command-Byte to the Display. More... | |
| void | LCDWriteData (char c) |
| Writes a Data-Byte to the Display. More... | |
| void | LCDWriteNibble (char c) |
| Writes a nibble to the LCD. More... | |
| void | LCDWriteString (const char *s) |
| Displays a String. More... | |
| int | putchar_LCD (char c, FILE *file) |
| The Putchar-Routine for the LCD. More... | |
Variables | |
| FILE | lcd =FDEV_SETUP_STREAM(putchar_LCD,NULL,_FDEV_SETUP_WRITE) |
| uint8_t | lcdVbarChar [LCD_MAX_LINES] |
| Holds the characters for Vertical Bar Graph from Line 3 to 0. More... | |
Routines for handling the LC-Display.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
| #define LCD_DDR DDRC |
| #define LCD_EN 3 |
| #define LCD_LIGHT 0 |
| #define LCD_PIN PINC |
| #define LCD_PORT PORTC |
| #define LCD_RS 1 |
| #define LCD_RW 2 |
| void InitLCD | ( | void | ) |
Initializes the LC-Display.
References delay50ms(), delay50us(), delay5ms(), LCD_DDR, LCD_EN, LCD_LIGHT, LCD_PORT, LCDClear(), LCDInitCGRAM(), and LCDWriteCmd().
Referenced by Init().


| bool LCDBuildHBarChar | ( | uint8_t | nBars | ) |
Builds a Bar Graph Character for horizontal Bars.
The horizontal bar graph character can be printed as character code 2
| nBars | The number of black Columns (0..5) |
References LCDWriteCmd(), and LCDWriteData().
Referenced by LCDHBarGraph().


| bool LCDBuildVBarChar | ( | uint8_t | nBars | ) |
Builds a Character for vertical Bar Graph.
The vertical bar graph character can be printed as character code 3
| nBars | The number of black Lines (0..8) |
References LCDGoTo(), LCDWriteCmd(), and LCDWriteData().
Referenced by LCDBuildVBarChars().


| bool LCDBuildVBarChars | ( | uint8_t | nBars | ) |
Builds the Character Array for vertical Bar Graphs.
| nBars | The number of black Bars |
References config, displayMetrics, confStruct_t::displayType, LCDBuildVBarChar(), lcdVbarChar, and displayMetrics_T::nLines.
Referenced by VBarGraphPrepare(), and VBarTest().


| void LCDClear | ( | void | ) |
Clears the LCD and sets Cursor to Home Postion.
References LCDWriteCmd().
Referenced by CmdCalibrate(), CmdSetDisplay(), HBarTest(), InitLCD(), ShowScreen(), and VBarTest().


| void LCDGoTo | ( | uint8_t | pos | ) |
Sets the Cursor Position.
Lines start at 0 and 64 for the 2x16 and
0,64,20 and 84 for the 4x20-Display
| pos | The Position |
References LCDWriteCmd().
Referenced by EnterDouble(), LCDBuildVBarChar(), LCDHBarGraph(), LCDPrintLine_P(), and ShowScreen().


| int8_t LCDHBarGraph | ( | uint8_t | line, |
| uint8_t | val | ||
| ) |
Prints a Line of Bar Graph. The rest of the line is cleared.
| line | The 0-based Line Number |
| val | The number of black Lines to draw. This is not a percent value! Maximum is five times the width of the display (i.e. 100 for 4x20 and 80 for 2x16). |
References config, displayMetrics, confStruct_t::displayType, LCDBuildHBarChar(), LCDGoTo(), LCDWriteData(), displayMetrics_T::nLines, displayMetrics_T::startLine, and displayMetrics_T::width.
Referenced by HBarGraphPerCent(), and HBarTest().


| void LCDInitCGRAM | ( | ) |
Initializes the Character Generator RAM.
This routine basically defines the antenna-character (DCF77-symbol). Since a character 0 cannot be used for printf, we use character 1 for it.
The symbols for bargraph display use character codes 2 to 6. Character code 7 is unused until now.
References LCDWriteCmd(), and LCDWriteData().
Referenced by InitLCD().


| void LCDPrintLine_P | ( | uint8_t | line, |
| const char * | fmt, | ||
| ... | |||
| ) |
Printf for one complete Line of the Display.
This is a handy printf-like function for outputting display content. It ensures that no more characters are written than one line can hold and automatically deletes all characters beyond the content so that no fragments of the previous content remain visible.
| line | The line to print on (0-based) |
| fmt | A printf-like format string |
| ... | Optional further parameters |
References config, displayMetrics, confStruct_t::displayType, LCD_MAX_WIDTH, LCDGoTo(), LCDWriteData(), LCDWriteString(), displayMetrics_T::nLines, displayMetrics_T::startLine, and displayMetrics_T::width.
Referenced by FTest485(), HBarTest(), ShowScreen(), and VBarTestPrint().


| char LCDRead | ( | void | ) |
Reads a Byte from the LCD.
References LCDReadNibble().
Referenced by LCDReadCmd().


| char LCDReadCmd | ( | void | ) |
| char LCDReadNibble | ( | void | ) |
| void LCDWait | ( | void | ) |
Waits until the LCD is ready.
References LCDReadCmd().
Referenced by LCDWriteCmd(), and LCDWriteData().


| void LCDWrite | ( | char | c | ) |
Writes a Byte to the Display.
The state of the RS-pin decides weather it is data or command.
| c | The Byte |
References LCD_DDR, LCD_PORT, LCD_RW, and LCDWriteNibble().
Referenced by LCDWriteCmd(), and LCDWriteData().


| void LCDWriteCmd | ( | char | c | ) |
Writes a Command-Byte to the Display.
| c | The Byte |
References LCD_PORT, LCD_RS, LCDWait(), and LCDWrite().
Referenced by InitLCD(), LCDBuildHBarChar(), LCDBuildVBarChar(), LCDClear(), LCDGoTo(), and LCDInitCGRAM().


| void LCDWriteData | ( | char | c | ) |
Writes a Data-Byte to the Display.
| c | The Byte |
References LCD_PORT, LCD_RS, LCDWait(), and LCDWrite().
Referenced by LCDBuildHBarChar(), LCDBuildVBarChar(), LCDHBarGraph(), LCDInitCGRAM(), LCDPrintLine_P(), LCDWriteString(), and putchar_LCD().


| void LCDWriteNibble | ( | char | c | ) |
Writes a nibble to the LCD.
| c | The Character. Only the upper nibble is used |
References LCD_EN, and LCD_PORT.
Referenced by LCDWrite().

| void LCDWriteString | ( | const char * | s | ) |
Displays a String.
| s | The String |
References LCDWriteData().
Referenced by LCDPrintLine_P().


| int putchar_LCD | ( | char | c, |
| FILE * | file | ||
| ) |
The Putchar-Routine for the LCD.
| c | The Character |
| file | A pointer to the file (unused) |
References config, DISPLAY_ANALOG, confStruct_t::displayType, and LCDWriteData().

| FILE lcd =FDEV_SETUP_STREAM(putchar_LCD,NULL,_FDEV_SETUP_WRITE) |
Referenced by Init().
| uint8_t lcdVbarChar |
Holds the characters for Vertical Bar Graph from Line 3 to 0.
Referenced by LCDBuildVBarChars(), ShowScreen(), and VBarTestPrint().
1.8.15