Ohne Infos über das LCD und den Schaltplan fällt eine Antwort nicht leicht...
Hallo
Ich habe am Wochenende ein neues LCD gekauft und wollte es heute mal testen. Ich hab das Beispielprogramm vom RN-Wiki genommen und auf meinen Controller umgeschrieben aber das LCD zeigt den Text nicht an.
Meine Frage ist nun ist das Programm falsch oder hab ich bei der Verkabelung was falsch gemacht?
Hier das Programm:
Code:$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Cls Locate 1 , 1 Lcd "Hallo Welt" End
Ohne Infos über das LCD und den Schaltplan fällt eine Antwort nicht leicht...
Wenn das Herz involviert ist, steht die Logik außen vor! \/
ISt das ein HD447 kompatibles?
Hallo!
Versuch doch mal diesen Code:
GrüßeCode:$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Initlcd waitms 100 Cls Locate 1 , 1 Lcd "Hallo Welt" End
Thomas
Jap ist es.
Das ist dieses Display
-> http://www.conrad.de/goto.php?artikel=181863
Und Peterfido in erster Linie wollt ich wissen ob der Fehler am Programm liegt. Wenn das Programm soweit stimmt weiß ich das ich auf der Adapterplatine zwischen LCD und Mega32 (weil das LCD hat 12 einen 14 Pin Stecker und der Mega nur 10) ein Fehler ist.
Und der Code funktioniert auch net.
Naja, ob das Programm stimmt, kann man ohne Displayangabe nicht sagen, da ein Display A durchaus anders angesteuert werden kann als Display B.
Bei dem Conrad-Display ist es so; es ist fast mit den HD44780 kompatibel. Bei der Initialisierung brauchts nur noch ein Kommando mehr.
#ifndef MfG
#define MfG
Kann es vielleicht sein das ich eine Lötbrücke auf der Rückseite des LCDs ändern muss da ich es ja im 4-Bit Modus betreibe?
Hallo Kampi,
Ne, das ist wohl zum Umschalten in den SPI Modus.Zitat von Kampi
Hast du den R/W Anschluss auf GND gelegt?
Die Zeile
Config Lcdbus = 4
solltest du entfernen, da das LCD ja im PIN Modus betreibst (jeden Pin hast du einzeln angegeben).
Wenn du mal nach KS0073 suchst, findest du diesen Thread zum Unterschied zum HD44780 Controller:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=9925
Dort ist im hinteren Teil eigentlich alles erklärt.
Nein R/W hab ich net auf Ground gelegt. Auch nicht die nicht angeschlossenen Datenpins.
So ich hab mal auf
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10766
bisl gelesen und dementsprechend was zusammengebastelt:
Allerdings kommt beim Kompilieren ein Fehler wo drin steht:Code:$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 20 * 4a Dim Zeichen As Byte Declare Sub Lcdwrite 'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Initlcd Call Lcdwrite(&B00101100) Waitms 5 Call Lcdwrite(&B00001001) Waitms 5 Call Lcdwrite(&B00101000) Waitms 5 Call Lcdwrite(&B00000110) Waitms 5 Call Lcdwrite(&B00001100) Waitms 5 Cls Locate 1 , 1 Lcd "Hallo Welt" 'Schreibt die Initialisierungs - Bits zum LCD Sub Lcdwrite(byval Zeichen As Byte) ' Höherwertiges Nibble setzen If Zeichen.4 = 1 Then Portc.4 = 1 Else Portc.4 = 0 If Zeichen.5 = 1 Then Portc.5 = 1 Else Portc.5 = 0 If Zeichen.6 = 1 Then Portc.6 = 1 Else Portc.6 = 0 If Zeichen.7 = 1 Then Portc.7 = 1 Else Portc.7 = 0 ' Höherwertiges Nibble übertragen Portc.3 = 1 Waitms 1 Portc.3 = 0 Waitms 1 ' Niederwertiges Nibble setzen If Zeichen.0 = 1 Then Portc.4 = 1 Else Portc.4 = 0 If Zeichen.1 = 1 Then Portc.5 = 1 Else Portc.5 = 0 If Zeichen.2 = 1 Then Portc.6 = 1 Else Portc.6 = 0 If Zeichen.3 = 1 Then Portc.7 = 1 Else Portc.7 = 0 ' Niederwertiges Nibble übertragen Portc.3 = 1 Waitms 1 Portc.3 = 0 Waitms 1 End Sub
Incorrect number of parameters und zwar in dieser Zeile:
Call Lcdwrite(&B00101100)
Hallo!
Versuch einfach mal die nicht angeschlossenen Pins auf GND zu legen und benutze herkömmlich den Initlcd-Befehl. Dann sollte es demenstprechend funktionieren.
Grüße
Thomas
Lesezeichen