PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD - Nur schwarze Balken!



Douser182
18.02.2007, 19:17
Hallo Leute, habe mal wieder ein großes Problem!
Habe ein LCD an einem MEGA16 angeschlossen und mit einem Testprogramm sollten Fehler entdeckt werden! Aber da ist der Hacken, an einem ATTiny2313 funktioniert es einwandfrei aber am MEGA16 erscheinen in der Ersten Zeile und schwarze Felder.
Mein erster Gedanke war, die Pinbelegung, wurde aber mehrfach überprüft.
Bitte hilft mir!
Gruß Douser

Hier noch der Quellcode!

$regfile = "m16def.dat"
$crystal = 8000000

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

Do
Cls 'loesche das LCD Display
Cursor Off
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "Wohnwagenheizung" 'String auf Display anzeigen
Loop
End

Pascal
18.02.2007, 19:20
Im Programm hast du ja eine Taktfrequenz von 8MHz angegeben. Hast du die auch beim ATMega16 so eingestellt? Denn standardmäßig läuft der mit intern erzeugten 1MHz.

Douser182
18.02.2007, 19:22
Ja wurde umgestellt!

Pascal
18.02.2007, 19:24
Funktionierts auch?

Douser182
18.02.2007, 19:26
wie meinst du das? beim schreiben wurde kein Fehler angegeben!

Pascal
18.02.2007, 19:51
Ich meinte, ob das Display jetzt funktioniert.

coCo
18.02.2007, 22:44
Hi,
ich glaub du hast Initlcd vergessen. Und außerdem wird dein Display wegen der Schleife ununterbrochen gelöscht und wieder neu beschrieben. Vielleicht solltest du noch ne Wait Anweisung einbauen.
Keine Ahnung obs daran liegt.

MfG

Jigger
19.02.2007, 00:21
Oder du packst den CLS befehl vor die Schleife also so

Config lcd
.. usw...

Cls
Do
Locate 1,1
Lcd "BLABLABLA"
Loop

Ich hatte ein ähnliches Problem und bei mir klappt nun alles.

PICture
19.02.2007, 00:37
Hallo!

Ich finde es unnötig, das gleiche mehrmals an Display zu schicken, es sei denn, es nur ein Testprogramm fürs Display ist.

MfG

Douser182
19.02.2007, 05:41
Das Programm wurde nur zum Testen der Schaltung geschrieben!
Zu der Frage, ob die MHz umgestellt wurden, die sind schon vor der ersten Inbetriebnahme umgesterld worden und dann noch einmal überprüft. Müsste eigentlich passen!

Werde das mit dem CLS heute noch ausprobieren!

MFG Douser

Douser182
19.02.2007, 17:42
Hallo Leute,
Habe jetzt alles ausprobiert, den Code mehrfach geändert, die MHz überprüft usw. und immer noch sind die schwarzen Balken da!
Aber wieso geht es am ATTiny 2313 und am Mega 16 nicht? habe drei nagel neue Mega ausprobiert also an denen kanns auch nicht liegen und das LCD ist auch i. O.

Gruß Douser

Jigger
20.02.2007, 15:03
Wie hast du das denn aufgebaut? Geätzt oder Lochraster. In der Richtung mal alles gecheckt? Die richtigen Leitungen am richtigen Port Leiterunterbrechungen usw... da können ja auch ganz schnell Fehler reinkommen.

Ratber
20.02.2007, 15:09
@Douser182


Der db7 an Port b0 ist Absicht oder Schreibfehler ?

Was soll "Config Lcd = 16 * 2 'wir verwenden ein 4 x 20 Zeichen Display " bedeuten ?

Wenn du ein 20*4 nutzt dann kommt 20*2 dahin.
Oder Testest du mit unterschiedlichen LCDs ?


Die anderen sagten es schon,eine gewisse Reihenfolge sollte man einhalten.

Hier mal ein Beispiel wie ich das immer mache:



Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.0 , Db7 = Portc.1 , E = Portd.7 , Rs = Portb.0
Config Lcd = 24 * 2
Initlcd
Cls


-Erst die Pinne
-Dann welches Format (Hier 24x2)
-Initialisieren
-Und noch alles Löschen damits zum Start gut aussieht und der Displaycontroller seine Zeit zum Einrichten bekommt.


Weiter drüber kommt bei mir auch noch das hinein:



$hwstack = 64
$swstack = 30
$framesize = 120


Damit kann man nicht vergessen je nach Anwendung auch die Stacks richtig zu dimensionieren.



Das waren nur mal so meine Gedanken nach 1 Minute Lesen.