Das selbe Problem habe ich auch gerade auf PortC mit dem Display. Auf Port A funzt es! Wenn man da nich noch was an den Fuses oder so umstellen muß
Hi
Ich bin Anfänger in Sachen Microcontrollertechnik und habe mir einen ATmega32 wie im Wiki beschrieben aufgebaut.
Das hat auch alles soweit funktioniert.
Jetzt möchte ich gerne ein LCD anschliesen und ich habe hier das allgemein bekannte 27*4 Wintek von Pollin.
Ich habe folgendes Programm hier im Forum gefunden und angepasst:
Damit zeigt mein Display aber nicht das was es anzeigen soll.Code:$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 $baud = 9600 Dim ___lcdno As Byte 'Umschaltbyte für Anzeige : '0 = Chip 1 ; 1 = Chip 2 'LCD initialisieren Config Lcd = 40 * 4 'Anzeigemodus 40 x 4 Zeichen Config Lcdpin = Pin , E = Portc.1 , E2 = Portc.2 , Rs = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 ___lcdno = 0 'auf Chip 1 schalten Initlcd 'die beiden oberen Zeilen 'initialisieren Cls 'die beiden oberen Zeilen löschen ___lcdno = 1 'auf Chip 2 schalten Initlcd 'die beiden unteren Zeilen 'initialisieren Cls 'die beiden unteren Zeilen löschen 'Lcd Anzeige Ausgeben 'Die 2 Oberen Zeilen Anzeigen ___lcdno = 0 Locate 1 , 1 Lcd "1. Die erste Zeile" ; Locate 2 , 1 Lcd "2. Die zweite Zeile" Cursor Off 'Die 2 Unteren Zeilen Anzeigen ___lcdno = 1 Locate 1 , 1 Lcd "3. Die dritte Zeile" ; Locate 2 , 1 Lcd "4. So einfach ist das !!!!" Cursor Off End 'Programmende
Ich habe das Display mit einem ca. 40cm langen Flachbandkabel angeschlossen. Das dürfte doch eigentlich kein Problem sein oder?
Ich hab mal ein Bild angehängt
Vielen Dank schonmal,
Benni
Das selbe Problem habe ich auch gerade auf PortC mit dem Display. Auf Port A funzt es! Wenn man da nich noch was an den Fuses oder so umstellen muß
Am PortC hängt noch das JTAG-Interface. Das sollte mann in den Fuses deaktivieren. (was bei mir schon der Fall war aber halt meinen fehler nicht behebt)
EDIT: Nach einer Neuprogrammierung ist alles i.o nach einem Reset stimmen die Zeilen 3 und 4 nicht. Das Programm neu Aufspielen dann passts wieder...bis zum nächsten Reset
Hi Rofo,
ohne Deinen Code wird Dir niemand helfen. (Hilfe ist so nämlich auch nicht möglich!)
Gruß Dnerb
Das Gegenteil von "gut" ist "gut gemeint"!
Hi,
wegen der Kabellänge: ich habe bei meiner Temperaturregelung der Tiefkükltruhe ca 10 Meter !!! Kabel zwischen Prozessor und Display -> funzt ohne Probleme.
MfG Dani.
@Dnerb
Mit dem Code wirds auch nich leichter da der ja Funktioniert nur nach dem Reset was nicht stimmt.
In der Lib wurde nur der Port angepasst.Code:$regfile = "m32def.dat" $lib "lcd4e2.lib" $crystal = 16000000 Dim ___lcde As Byte ___lcde = 0 Cls Lcd " Pollin 27*4 LCD TEST " Locate 2 , 1 Lcd " Zeile 2 " ___lcde = 1 'write to the 2 last lines Cls Lcd " Zeile 3 " Locate 2 , 1 Lcd " Zeile 4 " End
Dir fehlt auf jeden Fall schonmal "initlcd".
Das Gegenteil von "gut" ist "gut gemeint"!
Hi
Vielen Dank schonmal für eure Antworten!!
Ich habe jetzt das LCD an Port A angeschlossen und den Code angepasst, aber da tut sich jetzt garnichts mehr (d.h. es werden halt eben die beiden Balken angezeigt, wie immer wenn man Saft aufs LCD gibt).
Naja, ich kümmer mich morgen mal da drum, hab jetz keine Zeit mehr
Benni
@Dnerb
Nö fehlt mir nicht weil man ein INITLCD nicht braucht.
Die Hilfe sagt dazu "The LCD display is initialized automatic at start up when LCD statements are used by your code."
Was sollte ein INITLCD auch helfen wenns an PortA funzt aber nicht an PortC?
ist nur eine vermutung, setzte mal eine wartezeit vor dem cls ein.
so etwa mit waitms 100 anfangen und weiter verkleinern.
Lesezeichen