PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Display am ATMega32



Jon
01.01.2007, 12:54
Hallo,
da der Display an meiner Fernbedienung nichtmehr ausreicht will ich jetzt am selben µC einen zweiten Dispay anschließen.
Ist das Hardwaremäßig machbar, wenn ja, wie muss ich dem ATMega im Programm mitteilen, dass ich zwei Displays habe?

Freue mich auf jede Antwort!!

jon

P.S.:Wenn noch Infos fehlen, fragt mich!!

coCo
01.01.2007, 13:08
Hi,
ich habe ein Wintek LCD von pollin und das wird auch angesteuert also ob es zwei DIsplays wären. Du musst die 4 Datenleitungen von beiden Displays zu den gleichen Eingängen vom AVR führen. Also z.B.: Display1.D1, Display2.D1 -> PC0 ; Display1.D2, Display2.D2 -> PC1, und so weiter. Nur die Enable Leitungen werden nicht so angeschlossen (Display1.Enable -> PC4, Diplay2.Enable -> PC5 zum Beispiel).

Im Programm kannst du es so konfigurieren:


Config Lcdpin = Pin , E = Portc.1 , E2 = Portc.2 , Rs = Portc.0 , Db4 = Portd.7 , Db5 = Portb.0 , Db6 = Portb.2 , Db7 = Portd.4


Wenn du nun Display 1 initialisieren willst musst du die ___lcdno (vorher als byte deklarieren) auf 0 setzen. Damit greifst du auf dein erstes Display zu. Zum Beispiel:


___lcdno = 0
Initlcd
Cls

___lcdno = 1
initlcd
Cls


Wenn du etwas ausgeben willst musst du immer erst auswählen auf welchem Display du es ausgeben willst. Zum Beispiel:


___lcdno = 1
Locate 1,1
Lcd "Hallo"


MfG

PICture
01.01.2007, 13:09
Hallo Jon!

Vielleicht kann ich Dir mit diesem Beitrag ein bischen helfen ?

https://www.roboternetz.de/phpBB2/viewtopic.php?t=22749

MfG

Edit: ich kann leider nicht so schnell schreiben. :)

Jon
01.01.2007, 14:06
@coCo,
vielen Dank. Das werde ich mal ausprobieren. Nur muss ich erstmal Die Hardware auf meinem Board löten. Ich hätte mir das irgendwie komplizierter vorgestellt.

@PICture,
ganz verstehe ich zwar nicht, was du in deinem anderen Beitrag geschrieben hast, aber trotzdem vielen Danke für deine Mühe!

jon

P.S.:
Ich habe nur ein Display mit 4*20 Zeichen und ein mit 2*16 Zeichen.
Wie muss ich dass dann bei der Initialisierung oben im Prog machen?

coCo
01.01.2007, 14:11
Ich bin mir nicht sicher, aber versuchs mal so:


___lcdno = 0
Config Lcd = 4*20

___lcdno = 1
Config Lcd = 2*16


Keine Ahnung ob das klappt. Ansonsten einfach als 4*20 initialisieren und beim 2*16 display musst du halt mit Locate arbeiten, damit er nicht über das Ende hinaus rausschreibt.

MfG

Jon
01.01.2007, 15:24
Gut. Dann werde ich das erstmal so probieren. Wenn ich probleme dabei habe melde ich mich.

Vielen Dank!!

jon