LevelMeter-Display  2.0
An ultrasonic Level Meter for Stormwater Cisterns
Macros | Functions | Variables
lcd.h File Reference
Include dependency graph for lcd.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define LCD_MAX_LINES   4
 Maximum allowable numbers of lines for all possible displays. More...
 
#define LCD_MAX_WIDTH   20
 Maximum allowable with of all possible displays. More...
 

Functions

void InitLCD (void)
 Initializes the LC-Display. 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...
 
static uint8_t LCDGetBrightness (void)
 Gets the current Brightness of the LCD Backlight. More...
 
static uint8_t LCDGetContrast (void)
 Gets the current Contrast of the LCD. 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...
 
static void LCDSetBrightness (uint8_t val)
 Sets the Brightness of the LCD Backlight. More...
 
static void LCDSetContrast (uint8_t val)
 Sets the Contrast of the LCD. More...
 

Variables

FILE lcd
 
uint8_t lcdVbarChar [LCD_MAX_LINES]
 Holds the characters for Vertical Bar Graph from Line 3 to 0. More...
 

Macro Definition Documentation

◆ LCD_MAX_LINES

#define LCD_MAX_LINES   4

Maximum allowable numbers of lines for all possible displays.

◆ LCD_MAX_WIDTH

#define LCD_MAX_WIDTH   20

Maximum allowable with of all possible displays.

Function Documentation

◆ InitLCD()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDBuildVBarChar()

bool LCDBuildVBarChar ( uint8_t  nBars)

Builds a Character for vertical Bar Graph.

The vertical bar graph character can be printed as character code 3

Parameters
nBarsThe number of black Lines (0..8)
Returns
True if OK, false if not

References LCDGoTo(), LCDWriteCmd(), and LCDWriteData().

Referenced by LCDBuildVBarChars().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDBuildVBarChars()

bool LCDBuildVBarChars ( uint8_t  nBars)

Builds the Character Array for vertical Bar Graphs.

Parameters
nBarsThe number of black Bars
Returns
True if OK, false if not

References config, displayMetrics, confStruct_t::displayType, LCDBuildVBarChar(), lcdVbarChar, and displayMetrics_T::nLines.

Referenced by VBarGraphPrepare(), and VBarTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDClear()

void LCDClear ( void  )

Clears the LCD and sets Cursor to Home Postion.

References LCDWriteCmd().

Referenced by CmdCalibrate(), CmdSetDisplay(), HBarTest(), InitLCD(), ShowScreen(), and VBarTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDGetBrightness()

static uint8_t LCDGetBrightness ( void  )
inlinestatic

Gets the current Brightness of the LCD Backlight.

Returns
The Brightness

Referenced by CmdSetBright(), DoKFlags(), and DoTflags().

Here is the caller graph for this function:

◆ LCDGetContrast()

static uint8_t LCDGetContrast ( void  )
inlinestatic

Gets the current Contrast of the LCD.

Returns
The Contrast

Referenced by CmdSetContrast().

Here is the caller graph for this function:

◆ LCDGoTo()

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
Parameters
posThe Position

References LCDWriteCmd().

Referenced by EnterDouble(), LCDBuildVBarChar(), LCDHBarGraph(), LCDPrintLine_P(), and ShowScreen().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDHBarGraph()

int8_t LCDHBarGraph ( uint8_t  line,
uint8_t  val 
)

Prints a Line of Bar Graph. The rest of the line is cleared.

Parameters
lineThe 0-based Line Number
valThe 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).
Returns
-1 on Error, 0 if OK

References config, displayMetrics, confStruct_t::displayType, LCDBuildHBarChar(), LCDGoTo(), LCDWriteData(), displayMetrics_T::nLines, displayMetrics_T::startLine, and displayMetrics_T::width.

Referenced by HBarGraphPerCent(), and HBarTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDInitCGRAM()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDPrintLine_P()

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.

Parameters
lineThe line to print on (0-based)
fmtA printf-like format string
...Optional further parameters
Returns

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LCDSetBrightness()

static void LCDSetBrightness ( uint8_t  val)
inlinestatic

Sets the Brightness of the LCD Backlight.

Note
This is a temporary value and is not stored in the configuration memory.
Parameters
valThe Brightness

Referenced by CmdCalibrate(), CmdSetBright(), DoKFlags(), DoTflags(), and WaitKeyBlinking().

Here is the caller graph for this function:

◆ LCDSetContrast()

static void LCDSetContrast ( uint8_t  val)
inlinestatic

Sets the Contrast of the LCD.

Note
This is a temporary value and is not stored in the configuration memory.
Parameters
valThe Contrast

Referenced by CmdSetContrast().

Here is the caller graph for this function:

Variable Documentation

◆ lcd

FILE lcd

Referenced by Init().

◆ lcdVbarChar

uint8_t lcdVbarChar[LCD_MAX_LINES]

Holds the characters for Vertical Bar Graph from Line 3 to 0.

Referenced by LCDBuildVBarChars(), ShowScreen(), and VBarTestPrint().