Forum: Projekte & Code [ASM] Konfigurierbarer LCD-Treiber für HD44780-Displays


von M. P. (phpmysqlfreak)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe mal einen kleinen LCD-Treiber für HD44780-Displays geschrieben.
Dieser Treiber kann wahlweise ohne Schieberegister oder mit einem 
74xx164 oder 74xx595-Schieberegister verwendet werden.

Eine Dokumentation und Verwendungsbeispiele sind allerdings noch nicht 
vorhanden, und der Quelltext ist meiner Meinung nach auch noch nicht 
ausreichend kommentiert.

Geschrieben habe ich den Code im AVR-Studio. Daher benutze ich 
Präprozessor-Anweisungen, damit nach dem Compile-Vorgang der korrekte
Code-Abschnitt im Controller landet.

Bei der Verwendung von Schieberegistern besteht derzeit nur die 
Einschränkung der festen Pin-Verwendung und 8-Bit Ansteuerung, was ich 
aber in Zukunft noch platzsparend einbringen möchte.

Ich bitte um konstruktive Kritik und Verbesserungsvorschläge, damit 
dieser Treiber von vielen genutzt werden kann. Dabei denke ich an 
Anfänger und fortgeschrittene Programmierer.

Gruß,
    Marcel

Edit:
Die Größe des 595-Treibers ist 1 Word größer, als in der angehängten 
Datei angegeben. - Ich hatte noch einen Fehler korrigiert.

von Thomas (Gast)


Lesenswert?

Hallo Marcel,

gute Idee, zumal entsprechende asm-libs eher schwer zu finden sind.
Ich bin schon auf die Doc. gespannt, insbesondere was die universelle
Verwendbarkeit betrifft.

Viele Grüße
Thomas

von Helmut (Gast)


Lesenswert?

Hallo Marcel,

eine Anmerkung: du verbrauchst da eniges an Code fuer deine Delays - es 
ist doch nicht notwendig dass die 100%ig genau sind. ob 50 oder 51 ms 
ist doch egal. :)

Wuenschenswert waere allerdings dann die Delays abhaengig vom CPU-clock 
(per .define) zu machen.

Servus,
Helmut

von M. P. (phpmysqlfreak)


Lesenswert?

Helmut schrieb:
> uenschenswert waere allerdings dann die Delays abhaengig vom CPU-clock
> (per .define) zu machen.

Das kann ich verstehen, und habe es mittlerweile auch eingesehen. ;)

Ich werde es noch abändern, sodass die lt. Datenblatt geforderte Zeit 
nur "minimal" gewartet wird. - Im hochgeladenen Code diente es mir 
selbst nur zum lernen.

Weiter gemacht habe ich noch nicht, da mir aufgrund einer Montage kaum 
Zeit dafür blieb. ;) Aber das folgt jetzt wieder.

Vielen Dank für Einsehung und Kommentierung meines noch unfertigen 
Projektes.

Gruß,
    Marcel

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.