ASURO Library  2.80
Makrodefinitionen | Funktionen | Variablen
lcd.h-Dateireferenz
#include "asuro.h"
#include "myasuro.h"
Include-Abhängigkeitsdiagramm für lcd.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define LCD_INIT   {(LCD_4BIT | LCD_2LINE | LCD_5X7), 0}
 
#define LCD_DEV   0x40
 
#define LCD_LINES   2
 
#define LCD_CHARS   8
 
#define LCD_LINE1   0x00
 
#define LCD_LINE2   0x40
 
#define LCD_LINE3   0x10
 
#define LCD_LINE4   0x50
 
#define LD4   MY_LCD_LD4
 
#define LD5   MY_LCD_LD5
 
#define LD6   MY_LCD_LD6
 
#define LD7   MY_LCD_LD7
 
#define LRS   MY_LCD_LRS
 
#define LRW   MY_LCD_LRW
 
#define LEN   MY_LCD_LEN
 
#define LBL   MY_LCD_LBL
 
#define LCD_D0   (1 << LD4)
 
#define LCD_D1   (1 << LD5)
 
#define LCD_D2   (1 << LD6)
 
#define LCD_D3   (1 << LD7)
 
#define LCD_D4   (1 << LD4)
 
#define LCD_D5   (1 << LD5)
 
#define LCD_D6   (1 << LD6)
 
#define LCD_D7   (1 << LD7)
 
#define LCD_RS   (1 << LRS)
 
#define LCD_RW   (1 << LRW)
 
#define LCD_EN   (1 << LEN)
 
#define LCD_BL   (1 << LBL)
 
#define LCD_CLEAR   0x01
 
#define LCD_HOME   0x02
 
#define LCD_ENTRYMODE   0x04
 
#define LCD_INCREASE   (LCD_ENTRYMODE | 0x02)
 
#define LCD_DECREASE   (LCD_ENTRYMODE | 0x00)
 
#define LCD_DISPLAYSHIFTON   (LCD_ENTRYMODE | 0x01)
 
#define LCD_DISPLAYSHIFTOFF   (LCD_ENTRYMODE | 0x00)
 
#define LCD_DISPLAYMODE   0x08
 
#define LCD_DISPLAYON   (LCD_DISPLAYMODE | 0x04)
 
#define LCD_DISPLAYOFF   (LCD_DISPLAYMODE | 0x00)
 
#define LCD_CURSORON   (LCD_DISPLAYMODE | 0x02)
 
#define LCD_CURSOROFF   (LCD_DISPLAYMODE | 0x00)
 
#define LCD_BLINKINGON   (LCD_DISPLAYMODE | 0x01)
 
#define LCD_BLINKINGOFF   (LCD_DISPLAYMODE | 0x00)
 
#define LCD_SHIFTMODE   0x10
 
#define LCD_DISPLAYSHIFT   (LCD_SHIFTMODE | 0x08)
 
#define LCD_CURSORMOVE   (LCD_SHIFTMODE | 0x00)
 
#define LCD_RIGHT   (LCD_SHIFTMODE | 0x04)
 
#define LCD_LEFT   (LCD_SHIFTMODE | 0x00)
 
#define LCD_CONFIGURATION   0x20
 
#define LCD_8BIT   (LCD_CONFIGURATION | 0x10)
 
#define LCD_4BIT   (LCD_CONFIGURATION | 0x00)
 
#define LCD_2LINE   (LCD_CONFIGURATION | 0x08)
 
#define LCD_1LINE   (LCD_CONFIGURATION | 0x00)
 
#define LCD_5X10   (LCD_CONFIGURATION | 0x04)
 
#define LCD_5X7   (LCD_CONFIGURATION | 0x00)
 
#define LCD_CGRAM   0x40
 
#define LCD_DDRAM   0x80
 
#define LCD_KEY_YELLOW   (1<<PD6)
 
#define LCD_KEY_RED   (1<<PD2)
 
#define LCD_KEY_BLUE   (1<<PB3)
 
#define PrintLCD_P(_str)   PrintLCD_p(PSTR(_str))
 
#define SetCharLCD_P(_asc, _str)   SetCharLCD_p(_asc, PSTR(_str))
 

Funktionen

void InitLCD (void)
 LCD Initialisierung.
 
void InitLCDKeys (void)
 
void BacklightLCD (unsigned char state)
 LCD Backlight an oder ausschalten.
 
void SetIOLCD (unsigned char setCommand, unsigned char bits)
 LCD IO Ports schreiben.
 
unsigned char GetIOLCD (void)
 LCD IO Ports lesen.
 
void SetCursorLCD (unsigned char cursor, unsigned char line)
 LCD Cursor setzen.
 
void ClearLCD (void)
 LCD loeschen und Cursor auf 1 Postion der ersten Zeile.
 
void SetDataLCD (unsigned char data)
 LCD Daten schreiben.
 
void CommandLCD (unsigned char command)
 LCD Kommando ausgeben.
 
void WriteLCD (unsigned char data)
 LCD Daten schreiben.
 
void PrintLCD (char *string, unsigned char wrap)
 LCD String ausgeben optional mit Zeilenumbruch.
 
void PrintSetLCD (unsigned char cursor, unsigned char line, char *string)
 LCD String ausgeben an bestimmter Position.
 
void PrintIntLCD (int value)
 LCD Integer Wert ausgeben.
 
void PrintAlignLCD (unsigned char line, unsigned char alignment, char *string)
 LCD Stringausgabe mit Ausrichtung (links, mitte, rechts)
 
void PrintLCD_p (const char *progmem_s)
 LCD Stringausgabe aus dem Program Memory (Flash)
 
void SetCharLCD_p (unsigned char AsciiCode, const char *progmem_s)
 Sonderzeichen an das Display senden.
 
int PollSwitchLCD (void)
 Abfrage der Taserdes Arexx LCD Moduls.
 

Variablen

unsigned char portLCD
 
unsigned char lineLCD
 
unsigned char cursorLCD
 

Makro-Dokumentation

#define LBL   MY_LCD_LBL

Definiert in Zeile 78 der Datei lcd.h.

#define LCD_1LINE   (LCD_CONFIGURATION | 0x00)

Definiert in Zeile 134 der Datei lcd.h.

#define LCD_2LINE   (LCD_CONFIGURATION | 0x08)

Definiert in Zeile 133 der Datei lcd.h.

#define LCD_4BIT   (LCD_CONFIGURATION | 0x00)

Definiert in Zeile 132 der Datei lcd.h.

#define LCD_5X10   (LCD_CONFIGURATION | 0x04)

Definiert in Zeile 135 der Datei lcd.h.

#define LCD_5X7   (LCD_CONFIGURATION | 0x00)

Definiert in Zeile 136 der Datei lcd.h.

#define LCD_8BIT   (LCD_CONFIGURATION | 0x10)

Definiert in Zeile 131 der Datei lcd.h.

#define LCD_BL   (1 << LBL)

Definiert in Zeile 97 der Datei lcd.h.

#define LCD_BLINKINGOFF   (LCD_DISPLAYMODE | 0x00)

Definiert in Zeile 122 der Datei lcd.h.

#define LCD_BLINKINGON   (LCD_DISPLAYMODE | 0x01)

Definiert in Zeile 121 der Datei lcd.h.

#define LCD_CGRAM   0x40

Definiert in Zeile 138 der Datei lcd.h.

#define LCD_CHARS   8

Definiert in Zeile 61 der Datei lcd.h.

#define LCD_CLEAR   0x01

Definiert in Zeile 107 der Datei lcd.h.

#define LCD_CONFIGURATION   0x20

Definiert in Zeile 130 der Datei lcd.h.

#define LCD_CURSORMOVE   (LCD_SHIFTMODE | 0x00)

Definiert in Zeile 126 der Datei lcd.h.

#define LCD_CURSOROFF   (LCD_DISPLAYMODE | 0x00)

Definiert in Zeile 120 der Datei lcd.h.

#define LCD_CURSORON   (LCD_DISPLAYMODE | 0x02)

Definiert in Zeile 119 der Datei lcd.h.

#define LCD_D0   (1 << LD4)

Definiert in Zeile 84 der Datei lcd.h.

#define LCD_D1   (1 << LD5)

Definiert in Zeile 85 der Datei lcd.h.

#define LCD_D2   (1 << LD6)

Definiert in Zeile 86 der Datei lcd.h.

#define LCD_D3   (1 << LD7)

Definiert in Zeile 87 der Datei lcd.h.

#define LCD_D4   (1 << LD4)

Definiert in Zeile 89 der Datei lcd.h.

#define LCD_D5   (1 << LD5)

Definiert in Zeile 90 der Datei lcd.h.

#define LCD_D6   (1 << LD6)

Definiert in Zeile 91 der Datei lcd.h.

#define LCD_D7   (1 << LD7)

Definiert in Zeile 92 der Datei lcd.h.

#define LCD_DDRAM   0x80

Definiert in Zeile 139 der Datei lcd.h.

#define LCD_DECREASE   (LCD_ENTRYMODE | 0x00)

Definiert in Zeile 112 der Datei lcd.h.

#define LCD_DEV   0x40

Definiert in Zeile 59 der Datei lcd.h.

#define LCD_DISPLAYMODE   0x08

Definiert in Zeile 116 der Datei lcd.h.

#define LCD_DISPLAYOFF   (LCD_DISPLAYMODE | 0x00)

Definiert in Zeile 118 der Datei lcd.h.

#define LCD_DISPLAYON   (LCD_DISPLAYMODE | 0x04)

Definiert in Zeile 117 der Datei lcd.h.

#define LCD_DISPLAYSHIFT   (LCD_SHIFTMODE | 0x08)

Definiert in Zeile 125 der Datei lcd.h.

#define LCD_DISPLAYSHIFTOFF   (LCD_ENTRYMODE | 0x00)

Definiert in Zeile 114 der Datei lcd.h.

#define LCD_DISPLAYSHIFTON   (LCD_ENTRYMODE | 0x01)

Definiert in Zeile 113 der Datei lcd.h.

#define LCD_EN   (1 << LEN)

Definiert in Zeile 96 der Datei lcd.h.

#define LCD_ENTRYMODE   0x04

Definiert in Zeile 110 der Datei lcd.h.

#define LCD_HOME   0x02

Definiert in Zeile 108 der Datei lcd.h.

#define LCD_INCREASE   (LCD_ENTRYMODE | 0x02)

Definiert in Zeile 111 der Datei lcd.h.

#define LCD_INIT   {(LCD_4BIT | LCD_2LINE | LCD_5X7), 0}

Definiert in Zeile 56 der Datei lcd.h.

#define LCD_KEY_BLUE   (1<<PB3)

Definiert in Zeile 144 der Datei lcd.h.

#define LCD_KEY_RED   (1<<PD2)

Definiert in Zeile 143 der Datei lcd.h.

#define LCD_KEY_YELLOW   (1<<PD6)

Definiert in Zeile 142 der Datei lcd.h.

#define LCD_LEFT   (LCD_SHIFTMODE | 0x00)

Definiert in Zeile 128 der Datei lcd.h.

#define LCD_LINE1   0x00

Definiert in Zeile 63 der Datei lcd.h.

#define LCD_LINE2   0x40

Definiert in Zeile 64 der Datei lcd.h.

#define LCD_LINE3   0x10

Definiert in Zeile 65 der Datei lcd.h.

#define LCD_LINE4   0x50

Definiert in Zeile 66 der Datei lcd.h.

#define LCD_LINES   2

Definiert in Zeile 60 der Datei lcd.h.

#define LCD_RIGHT   (LCD_SHIFTMODE | 0x04)

Definiert in Zeile 127 der Datei lcd.h.

#define LCD_RS   (1 << LRS)

Definiert in Zeile 94 der Datei lcd.h.

#define LCD_RW   (1 << LRW)

Definiert in Zeile 95 der Datei lcd.h.

#define LCD_SHIFTMODE   0x10

Definiert in Zeile 124 der Datei lcd.h.

#define LD4   MY_LCD_LD4

Definiert in Zeile 70 der Datei lcd.h.

#define LD5   MY_LCD_LD5

Definiert in Zeile 71 der Datei lcd.h.

#define LD6   MY_LCD_LD6

Definiert in Zeile 72 der Datei lcd.h.

#define LD7   MY_LCD_LD7

Definiert in Zeile 73 der Datei lcd.h.

#define LEN   MY_LCD_LEN

Definiert in Zeile 77 der Datei lcd.h.

#define LRS   MY_LCD_LRS

Definiert in Zeile 75 der Datei lcd.h.

#define LRW   MY_LCD_LRW

Definiert in Zeile 76 der Datei lcd.h.

#define PrintLCD_P (   _str)    PrintLCD_p(PSTR(_str))

Definiert in Zeile 262 der Datei lcd.h.

#define SetCharLCD_P (   _asc,
  _str 
)    SetCharLCD_p(_asc, PSTR(_str))

Definiert in Zeile 271 der Datei lcd.h.

Dokumentation der Funktionen

void BacklightLCD ( unsigned char  state)

LCD Backlight an oder ausschalten.

Parameter
stateBacklight an oder aus

Definiert in Zeile 100 der Datei lcd.c.

{
SetIOLCD(state, LCD_BL);
}
void ClearLCD ( void  )

LCD loeschen und Cursor auf 1 Postion der ersten Zeile.

Definiert in Zeile 228 der Datei lcd.c.

void CommandLCD ( unsigned char  command)

LCD Kommando ausgeben.

Parameter
commandauszugebendes Kommando

Definiert in Zeile 215 der Datei lcd.c.

{
if (command == LCD_HOME)
lineLCD = cursorLCD = 0x00;
SetDataLCD(command);
}
unsigned char GetIOLCD ( void  )

LCD IO Ports lesen.

Rückgabe
LCD IO Port

Definiert in Zeile 168 der Datei lcd.c.

{
unsigned char data = 0x00;
data = ReadI2C(0);
return data;
}
void InitLCD ( void  )

LCD Initialisierung.

Definiert in Zeile 67 der Datei lcd.c.

{
unsigned char init[] = LCD_INIT;
unsigned char i = 0;
SetIOLCD(OFF, LCD_EN); // Start LCD Control, EN=0
Msleep(1); // Wait LCD Ready
// Initialize LCD
while (init[i] != 0x00)
{
CommandLCD(init[i]);
i++;
}
CommandLCD( LCD_DISPLAYON ); // Display on/off Control (Entry Display,Cursor off,Cursor not Blink)
CommandLCD( LCD_INCREASE ); // Entry Mode Set (I/D=1 Increment,S=0 Cursor Shift)
CommandLCD( LCD_CLEAR ); // Clear Display
CommandLCD( LCD_HOME ); // Home Cursor
Msleep(1); // Wait Initial Complete
}
void InitLCDKeys ( void  )
int PollSwitchLCD ( void  )

Abfrage der Taserdes Arexx LCD Moduls.

Rückgabe
gibt den Wert aller gedrueckten Tasten zurueck
bit kodiert

Definiert in Zeile 373 der Datei lcd.c.

{
int key = 0;
//taster pins auf input schalten
// OC2 PIN deaktivieren, aber 36kHz Timer weiterlaufen lassen (z.B. für Sleep(void) )
#if defined(__AVR_ATmega168__)
TCCR2A = _BV(WGM21);
TCCR2B = _BV(CS20);
#else
TCCR2 = (1 << WGM21) | (1 << CS20);
#endif
DDRD &= ~((1<<PD2)|(1<<PD6)); // roten und gelben Taster als Eingang definieren
DDRB &= ~(1<<PB3); // blauen Taster als Eingang definieren
//taster abfragen
key |= (PIND&LCD_KEY_YELLOW);
key |= (PIND&LCD_KEY_RED);
key |= (PINB&LCD_KEY_BLUE);
//taster pins auf output schalten
#if defined(__AVR_ATmega168__)
TCCR2A = _BV(WGM20) | _BV(WGM21) | _BV(COM2A0) | _BV(COM2A1);
TCCR2B = _BV(CS20);
#else
TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20);
#endif
DDRD |= ((1<<PD2)|(1<<PD6)); // roten und gelben Taster als ausgang definieren
DDRB |= (1<<PB3); // blauen Taster als ausgang definieren
//tasterwert zurückgeben
return key;
}
void PrintAlignLCD ( unsigned char  alignment,
unsigned char  line,
char *  string 
)

LCD Stringausgabe mit Ausrichtung (links, mitte, rechts)

Parameter
alignmentAusrichtung (links, mitte, rechts)
lineZeilennummer
stringauszugebender String

Definiert in Zeile 308 der Datei lcd.c.

{
unsigned char i = 0;
while (string[i] != 0x00)
i++;
if (alignment == RIGHT)
PrintSetLCD(LCD_CHARS-i, line, string);
else if (alignment == CENTER)
PrintSetLCD((LCD_CHARS-i)/2, line, string);
else
PrintSetLCD(0, line, string);
}
void PrintIntLCD ( int  value)

LCD Integer Wert ausgeben.

Parameter
valueauszugebender Integer Wert

Definiert in Zeile 292 der Datei lcd.c.

{
char text[6];
itoa(value,text,10);
PrintLCD(text, OFF);
}
void PrintLCD ( char *  string,
unsigned char  wrap 
)

LCD String ausgeben optional mit Zeilenumbruch.

Parameter
stringauszugebender String
wrapZeilenumbruch ja oder nein

Definiert in Zeile 255 der Datei lcd.c.

{
unsigned char i = 0;
while (string[i] != 0x00)
{
{
if (wrap)
else
break;
}
WriteLCD(string[i]);
i++;
}
}
void PrintLCD_p ( const char *  progmem_s)

LCD Stringausgabe aus dem Program Memory (Flash)

Parameter
progmem_sauszugebender String

Definiert in Zeile 330 der Datei lcd.c.

{
register char c;
while ( (c = pgm_read_byte(progmem_s++)) )
{
}
}
void PrintSetLCD ( unsigned char  cursor,
unsigned char  line,
char *  string 
)

LCD String ausgeben an bestimmter Position.

Parameter
cursorCursor Position
lineZeilen Nummer
stringauszugebender String

Definiert in Zeile 280 der Datei lcd.c.

{
SetCursorLCD(cursor, line);
PrintLCD(string, OFF);
}
void SetCharLCD_p ( unsigned char  AsciiCode,
const char *  progmem_s 
)

Sonderzeichen an das Display senden.

Parameter
progmem_sauszugebender String
AsciiCodeAscii Code des zu erzeugenden Sonderzeichens

Definiert in Zeile 353 der Datei lcd.c.

{
unsigned char i;
CommandLCD( 0x40|(AsciiCode<<3));
for(i=0;i<=7;i++)
{
WriteLCD(pgm_read_byte(progmem_s++));
}
}
void SetCursorLCD ( unsigned char  cursor,
unsigned char  line 
)

LCD Cursor setzen.

Parameter
cursorCursor Position
lineZeilen Nummer

Definiert in Zeile 184 der Datei lcd.c.

{
cursorLCD = cursor;
lineLCD = line;
if (line == 0)
line = LCD_LINE1;
#if LCD_LINES>=2
else if (line == 1)
line = LCD_LINE2;
#endif
#if LCD_LINES>=3
else if (line == 2)
line = LCD_LINE3;
#endif
#if LCD_LINES>=4
else if (line == 3)
line = LCD_LINE4;
#endif
else
line = LCD_LINE1;
CommandLCD(LCD_DDRAM | (line+cursor));
}
void SetDataLCD ( unsigned char  data)

LCD Daten schreiben.

Parameter
dataauszugebende Date

Definiert in Zeile 111 der Datei lcd.c.

{
unsigned char dataPins; // Pin Compatibility
// Set First Nibble Data to DataPins on PCF8574
dataPins &= 0x00;
dataPins |= ((data & 0x80) >> 7) << LD7;
dataPins |= ((data & 0x40) >> 6) << LD6;
dataPins |= ((data & 0x20) >> 5) << LD5;
dataPins |= ((data & 0x10) >> 4) << LD4;
SetIOLCD(OFF, LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7); // Clear old LCD Data (Bit[7..4])
SetIOLCD(ON, dataPins); // Strobe High Nibble Command
SetIOLCD(ON, LCD_EN); // Enable ON
Msleep(1);
SetIOLCD(OFF, LCD_EN); // Enable OFF
// Set Second Nibble Data to DataPins on PCF8574
dataPins &= 0x00;
dataPins |= ((data & 0x08) >> 3) << LD7;
dataPins |= ((data & 0x04) >> 2) << LD6;
dataPins |= ((data & 0x02) >> 1) << LD5;
dataPins |= ((data & 0x01) >> 0) << LD4;
SetIOLCD(OFF, LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7); // Clear old LCD Data (Bit[7..4])
SetIOLCD(ON, dataPins); // Strobe Low Nibble Command
SetIOLCD(ON, LCD_EN); // Enable ON
Msleep(1);
SetIOLCD(OFF, LCD_EN); // Enable OFF
Msleep(1); // Wait LCD Busy
}
void SetIOLCD ( unsigned char  setCommand,
unsigned char  bits 
)

LCD IO Ports schreiben.

Parameter
setCommandan - oder auschalten
bitszu setzende bits

Definiert in Zeile 151 der Datei lcd.c.

{
if (setCommand == ON)
portLCD |= bits;
else
portLCD &= ~bits;
}
void WriteLCD ( unsigned char  data)

LCD Daten schreiben.

Parameter
dataauszugebende Date

Definiert in Zeile 241 der Datei lcd.c.

Variablen-Dokumentation

unsigned char cursorLCD

Definiert in Zeile 150 der Datei lcd.h.

unsigned char lineLCD

Definiert in Zeile 149 der Datei lcd.h.

unsigned char portLCD

Definiert in Zeile 148 der Datei lcd.h.