PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega32 mit 204B LCD



Daniel002
19.09.2008, 16:29
Hallo,
habe mir eine LCD Anzeige zugelegt, der Controller ATmega32 lässt sich problemlos programmieren. Anschlossen ist alles so weit, das Display zeigt mit 2 Balken an und die Hintergrundbeleuchtung funktioniert auch gut, beim verstellen des Potis reagiert das Display auch.

Leider zeigt er mir keine richtige ausgabe an, nachdem ich den Controller beschrieben habe.

Ich habe mich an das Tutorial von RN Wissen gehalten

4-Bit Ansteuerung ohne Busy(I/O Mode)

Das Programm zur Ansteuerung des Displays im 4-Bit I/O Mode.

$regfile = "m32def.dat"
$crystal = 16000000

Config Lcd = 20 * 4 'wir verwenden ein 4 x 20 Zeichen Display
' Im I/O Mode wird jeder Prozessor Pin einzeln angegeben
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4

Cls 'loesche das LCD Display
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "Hello world." 'String auf Display anzeigen


Leider passiert nichts.

Das Datenblatt habe ich auch: http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FL CD204B%2523DIS.pdf;SID=324gu8u6wQASAAAFPDIrsba4165 9a5b0babcabd920e91fa01e7f6


Kann mir jemand vielleicht ein Tipp geben, bin nämlich schon etwas länger auf Fehlersuche und konnte diesen bisher noch nicht finden, ich mache wohl ne menge falsch, da sich das display nicht verändert nach Übertragung der Daten. Ich denke es ist ein Softwareproblem.
Vielen Dank.
Mit freundlichen Grüßen

Daniel002
20.09.2008, 15:32
Bin immer noch am rumprobieren, klappt alles nicht. Hat wirklich niemand ein kleinen Tipp für mich?

Inkoknito
20.09.2008, 16:31
hy,

ich würde mal tippen das du die freien pins vom display nicht auf gnd gelegt hast! 8-[

mfg

Jon
20.09.2008, 17:47
Entweder das, was Inkoknito tippt. oder, dass du bei der Kontrastregelung etwas falsch hast. Weil eigentlich sollte etwas passieren, wenn du am Poti drehst.

jno

Daniel002
20.09.2008, 18:18
ich würde mal tippen das du die freien pins vom display nicht auf gnd gelegt hast! 8-[

Doch alle freien sind auf GND


Entweder das, was Inkoknito tippt. oder, dass du bei der Kontrastregelung etwas falsch hast. Weil eigentlich sollte etwas passieren, wenn du am Poti drehst.

jno
Wenn ich am Poti drehe, passiert ja auch was, 2 balken von 4 sind an. Das wars, mache ich denn von der Software her alles richtig?
mfg

Jon
20.09.2008, 18:27
Kannst noch nach dem Config LCDpin = pin blablabla ein Init LCd einfügen und am Ende des Programms noch Wait 1 und End
Der Rest stimmt.
Allerdings glaube ich kaum, das diese drei Zeilen mehr Code das Problem lösen werden.
Mein Tipp ist, dass etwas an der Hardware nicht stimmt. Nochmal kontrolliert, ob alle Anschlüsse stimmen? Ist die Spannung am LCD OK? Sind das wirklich 5Volt?

jon

Daniel002
21.09.2008, 21:41
Wenn ich Init LCd einfüge zeigt er einen Fehler der Line an, kann es sein das mir eine lib Datei fehlt? Kann jemand mal seine lcd.lib hochladen?
Ich danke vielmals. Mfg

digitali
21.09.2008, 23:49
Wenn ich Init LCd einfüge zeigt er einen Fehler der Line an, kann es sein das mir eine lib Datei fehlt? Kann jemand mal seine lcd.lib hochladen?
Ich danke vielmals. Mfg

Wenn "Init LCd" angegeben wird kann es auch nicht funktionieren. Es heisst "Initlcd". Nur mal so am Rande bemerkt... Oder wurde es auch so geschrieben?

Mit

Config Lcdpin = Blablabla
Config Lcd = Blablabla
Initlcd
Cls
Cursor Off
Locate 1,1
LCD "Hello World"

und der richtigen Verkabelung (dabei muessen nichtmal die freien Pins an GND liegen), hat es bei mir mit jedem HD44780 LCD geklappt. Und das fast jedesmal auf Anhieb. Die Dinger sind salopp gesagt idiotensicher.

Mit freundlichen Gruessen
Digitali

nase
27.09.2008, 13:14
Hatte das gleiche Problem am Atmega 32. Es hat bei mir an der Fusebiteinstellung gelegen. Da der Atmega 32 eine sog. JTAG Schnittstelle hat, die sich am Port C befindet. Wenn ich also das Display am Port C benutze , muss ich in den Fusebits die Voreingestellte Optin JDTAG ändern.


grus nase