Forum: Compiler & IDEs 2 LCDs am Atmega8


von Xai (Gast)


Lesenswert?

Hallo,

ich würde gern mit meinem ATmega8 2 LCDs gleichzeitig ansteuern. Dazu 
hab ich ein paar Fragen:

*) Packt das der uC überhaupt?

*) Kann ich dazu einfach die im GCC Tutorial vorhandenen Routinen 
abändern und verwenden? Ich hab mir das so gedacht: Ich mache eine 
lcd-1-routines.h und -.c, in der die Routinen eben lcd_1_init() etc. 
heißen, und ein zweites mal eine lcd-2-routines.h und -.c, in der heißen 
die Routinen dann lcd_2_init() und so weiter. (Ich hoffe ich hab das 
verständlich erklärt ^^)
In meinem Hauptprogramm include ich dann alle 4 Dateien und verwende die 
Routinen entsprechend.

Ziel ist es dann, auf Display 1 einen Countdown runterzählen zu lassen 
und auf Display 2 Zahlen anzuzeigen, die bei ablauf des Countdowns 
erhöht werden. Dann startet der Countdown automatisch von vorne.


Schonmal danke für eure Antworten,

Xai

von Falk B. (falk)


Lesenswert?

@ Xai (Gast)

>ich würde gern mit meinem ATmega8 2 LCDs gleichzeitig ansteuern. Dazu
>hab ich ein paar Fragen:

>*) Packt das der uC überhaupt?

Kommt auf die LCDs an. Einfach alphanumerische oder kleine graphische 
(128x64 etc.) sind kein Thema. Grosse 320x200+++ sind schon ein anderes 
Kaliber.

>*) Kann ich dazu einfach die im GCC Tutorial vorhandenen Routinen
>abändern und verwenden?

Wenn die LCDs HD44780 kompatibel sind.

>Ziel ist es dann, auf Display 1 einen Countdown runterzählen zu lassen
>und auf Display 2 Zahlen anzuzeigen, die bei ablauf des Countdowns
<erhöht werden. Dann startet der Countdown automatisch von vorne.

Und warum nicht gleich ein 4x16 LCD?

MFG
Falk

von yalu (Gast)


Lesenswert?

Du kannst Port-Pins einsparen, wenn du alle Leitungen bis auf die
Enable-Leitung für beide Display gemeinsam verlegst. Damit brauchst du
bei 4-Bit-Datenübertragung 8, bei 8-Bit-Datenübertragung 12 Port-Pins,
also nur ein Pin mehr als bei einem Einzeldisplay.

Die Software müsstest du dann allerdings dahingehend anpassen, dass
über einen Parameter die jeweilige Enable-Leitung (und damit das
Display) ausgewählt werden kann. Die Routinen werden durch die
Modifikation etwas größer, du sparst dir aber die Kopie aller Routinen
für das zweite Display.

Insgesamt kannst du also auf diesem Weg sowohl Port-Pins als auch
Flash-Speicher einsparen.

von Xai (Gast)


Lesenswert?

@ Falk:

Mit dieser Frage hab ich gerechnet... der einfache Grund ist: ich depp 
hab 2 8x1 displays bestellt, frag nicht warum ich verstehs auch nicht...

@ yalu:

Leider bin ich ziemlicher Anfänger was das Programmieren angeht, deshalb 
hab ichs mir leicht gemacht g Ich weiß es ist sicher nicht die 
schönste Lösung, aber da ich vermutlich so schnell nichts mehr machen 
werde, reicht mir das


Auf jeden Fall vielen Dank für eure Hilfe, meine Befürchtung war nur 
dass es eventuell einen Konflikt bei den Variablen geben könnte.


MfG
xai

von Markus (Gast)


Lesenswert?

Man braucht nichtmal was anzupassen wenn die Software Displays mit 4x40 
Zeichen unterstützt. Diese Displays sind eigentlich zwei 2x40 Displays 
auf einer Platine weil der HD44780 nur 80 Zeichen unterstützt. Zwischen 
der oberen und untere Hälfte wird mit zwei Enable Leitungen 
umgeschaltet. Es besteht kein Unterschied zwischen einem 4x40 oder zwei 
einzelnen 4x20, außer in der Zeilenadressierung

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.