PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 4x16 LCD an Atmega8 lässt sich nicht ansprechen.?



Davmidt
22.02.2011, 15:54
Hallo zusammen,
bin ziemlich neu auf dem Gebiet der Microcontrollerprogrammierung mit Bascom und möchte irgendwann mal eine Füllstandsmessung z.B. einer Zisterne basteln. Gerade scheitere ich aber bereits am Problem etwas auf dem LCD darzustellen. Mein Code ist folgender:


'$sim
' Programmname: LCD_Hallo.bas
' Autor: David Schmidt
' Datum: 17.02.2011
' Beschreibung:
' Controller: Atmega8

$regfile = "m8def.dat"
$crystal = 1000000
$baud = 4800

Config Lcd = 16 * 4 ' 4x16 LCD
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.4 , Db6 = Portc.0 , Db7 = Portb.5 , E = Portb.2 , Rs = Portb.1


Do

Cls 'Testzwecke...
Upperline
Lcd "HALLO!"

Loop
End

Die Simulation in Bascom läuft durch, will ich aber die reale Schaltung testen, passiert auf meinem LCD gar nichts. Ich geh davon aus, dass der Fehler im Programm liegt, da das Display zwar leuchtet und auch ein Kontrast erkennbar ist, aber halt nichts angezeigt wird.
Danke für eure Hilfe!

Sauerbruch
22.02.2011, 16:30
Dein Problem könnte daran liegen, dass das Programm unmittelbar nach dem LCD-Befehl an den Anfang springt, wo gleich darauf der CLS-Befehl ausgeführt wird. Aufgrund der Trägheit der LCDs reicht diese Zeit nicht aus, um den Text sichtbar werden zu lassen.

Schreib einfach mal waitms 100 hinter LCD "Hallo", dann müsste es gehen!

wkrug
22.02.2011, 17:41
Was hast Du denn für ein 4x16 LCD?
LCD Module wie dieses hier: http://www.reichelt.de/?ACTION=3;GROUP=A523;GROUPID=3009;ARTICLE=44904;SI D=10TWPak38AAAIAADtnk2saa954ac19bf0e41c0206a754063 4df6a
brauche eine andere Initialisierung.
Das hat mich auch 1..2 Tage gekostet, bis ich das gecheckt hab.

Davmidt
22.02.2011, 21:36
Die Idee mit der Wartezeit hat leider nicht funktioniert.
Das Display ist folgendes:
http://www.pollin.de/shop/dt/MTczOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_TC1604A_01.html

Die Initialisierung übernimmt doch BASCOM automatisch, oder hab ich das falsch verstanden. Wie meinst du das genau?

for_ro
22.02.2011, 21:55
Hast du den R/W Pin auf Masse gelegt?

wkrug
22.02.2011, 22:02
Das Display, das Du da hast sollte mit der "normalen" Bascom Initialisierung klar kommen.
Die von mir genannten haben einen anderen Controller und müssen deshalb anders initialisiert werden!

Davmidt
23.02.2011, 09:02
Der R/W Pin liegt dauerhaft auf Masse, da ich ja nur auf das Display schreiben und nicht lesen will. Ich sehe lediglich zwei schwarze Balken in der 1. und 3. Zeile.

Davmidt
23.02.2011, 10:10
Hi Leute!
Anscheinend war der Controller kaput. Hatte einen Atmega8 8PU und hab jetz mal nen Atmega8 16PU genommen. Jetzt klappts.? Weiß jemand, ob das was mit den 8/16PU zu tun hat? Danke für eure Hilfe!

Jaecko
23.02.2011, 12:46
Das 8 oder 16 sagt nichts wirkliches aus. Von der Produktion her sind beide identisch. Nur in einem abschliessenden Test wird geprüft, ob der Kübel bei 16 MHz noch stabil läuft (16) oder ober er da schon spinnt und man bei 8MHz bleiben muss (8).

Wenn du also nen 8PU mit 16MHz betreibst, kanns sein, dass nichts so geht wie geplant.

for_ro
23.02.2011, 14:15
Hi Leute!
Anscheinend war der Controller kaput. Hatte einen Atmega8 8PU und hab jetz mal nen Atmega8 16PU genommen. Jetzt klappts.? Weiß jemand, ob das was mit den 8/16PU zu tun hat? Danke für eure Hilfe!
Bist du denn sicher, dass der Controller auf 1MHz gelaufen ist? Das klingt nach interner Frequenz, wie sie im Auslieferungszustand gegeben ist.
Check doch mal die Fuses oder spiel ein Programm drauf, welches im Sekundentakt eine LED umschaltet.
Mit falscher Frequenz wird das Timing evtl. so geändert, dass nichts mehr geht.

FlyingEaglE
09.07.2011, 10:00
Das hat mich auch 1..2 Tage gekostet, bis ich das gecheckt hab.

Und wie hast du das gelöst?