Forum: Projekte & Code Die erweiterten LCD-Routinen


von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Guten Abend!
ich habe für Eigenbedarf "Die erweiterten LCD-Routinen" aus dem Artikel 
hier angepasst.
Für Kritik bin ich dankbar. Ich hoffe, diese Anpassung wird für jemanden 
nützlich.

Was habe ich geändert:
1. jetzt kann man LCD-Pins willkürlich einschalten, egal welche Ports 
und welche Pins. Das passiert natürlich auf Kosten von Geschwindigkeit, 
aber LCD ist sowieso langsam und für Praxis bringt diese Verlangsamung 
kaum Nachteile. Dafür aber deutlich leichter, eigene Leiterplatte zu 
machen.
Die Pins sind in lcd.h anzupassen. Dabei sind separat Pin-Nummer, Port, 
DDR- und Pin-Register anzugeben.

2. auch R/W wird benutzt, um BUSY lesen zu können.
im lcd.c gibt es Umschaltung: wird #define LCD_BUSY 1 stehen, so wird 
BUSY abgelesen. Wird aber #define LCD_DELAY 2 stehen, dann wird R/W 
immer auf 0 gesetzt und wie üblich mit Verzögerungen gearbeitet. Das ist 
deshalb notwendig, weil die Variante mit BUSY bei Simulation in AVR 
Studio nicht richtig arbeitet. So kann man notfalls mit Verzögerung 
simulieren und später mit BUSY endgültige Variante machen. Variante mit 
BUSY spart natürlich Zeit, weil BUSY vor dem Befehl abgefragt wird. So 
kann AVR zwischen LCD-Befehlen noch etwas nützliches tun und nicht nur 
42 bzw. 46 us warten.

Auch E-Impuls steht immer direkt und nicht als eine Funktion. Aber da 
LCD genug langsam ist, hat das für Praxis keine Bedeutung.

Ansonsten alles wie in Artikel  "Die erweiterten LCD-Routinen" hier auf 
der Seite.

Die Funktionen sind mit einem chinesischen Indikator 2004A und mit AT 
Mega 1284P getestet. Es gibt natürlich keine Garantie, dass das alles 
auch mit allen möglichen LCD gut arbeitet.

Viele Grüße,
Max.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.