Hallo!!
Wenn ich es richtig gesehen habe, hast Du Portd.5 zweimal benutzt.
Für eine LED und für Enable am Display.
Musst Du ändern.
Roland
Hallo,
ich habe ein sehr großes Problem am welchem ich schon seit einigen Stunden sitze.
Und zwar bekomme ich mehrere Displays nicht zum Laufen. Eines der Displays hat definitiv vor c.a. 2 Jahren funktioniert.
Ich würde mich sehr freuen wenn ihr mir helfen könnt!
Das Display habe ich wie im RN-Wissen beschrieben über den 10 Poligen stecker angeschlossen. Genau so habe ich es vor 2 Jahren mit dem selben Display und dem selben Programm auch gemacht und damals hat es Funktioniert!
Im Anhang findet ihr ein Foto von dem Aufbau und das Datenblatt findet ihr hier: http://www.mikrocontroller.net/attac...Datenblatt.pdf
Davor habe ich es noch mit einem anderem Display Probiert, welches ich eigendlich verwenden wollte. Ich besitze davon 2 Stück und keines hat Funktioniert.
Hier das Datenblatt: http://home.arcor.de/wosm/AtmegaProj...2704M-1HNN.pdf
Angeschlossen habe ich alles im 4 bit-Modus.
Hier mein Bascom-Programm:
Für das eigendliche Display habe ich noch eine Seite gefunden: http://plischka.at/Displays_WINTEK_WD-C2704M.htmlCode:$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 8 '44 $crystal = 16000000 Config Pinf.1 = Input 'Quarzfrequenz Config Pind.5 = Output Led Alias Portd.5 Config Pine.5 = Input USB Alias Pine.5 Start Adc 'Ist 1 wenn USB angeschlossen Config Lcdpin = Pin , Rs = Portd.7 , E = Portd.5 , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0, Waitms 100 Config Lcdbus = 4 Waitms 100 Config Lcd = 16 * 4 Waitms 100 Dim A As Integer Initlcd Cursor Off A = 0 Do Led = 0 Dim W0 As Word W0 = Getadc(1) Incr A Cls Locate 2 , 1 Lcd "Sensorwert:" Locate 2 , 12 Lcd W0 Locate 1 , 1 Lcd "Messungen" Locate 1 , 11 Lcd A Waitms 100 Led = 1 Waitms 400 Loop End
Und das angepot bei Pollin (wo ich es her habe): http://www.pollin.de/shop/dt/NzY3OTc...704M_1HNN.html
genauso habe ich es auch gemacht, es funktioniert nur leider nicht.
Für hilfe oder Verweis auf die Lösung bin ich sehr dankbar.
Hallo!!
Wenn ich es richtig gesehen habe, hast Du Portd.5 zweimal benutzt.
Für eine LED und für Enable am Display.
Musst Du ändern.
Roland
Robotik & Arduino Homepage
http://www.ardumega.de
Hallo Roland,
habe die Led deaktiviert.
Nun ist die LED immer an was bei der beschaltung bedeutet das die Enable-Leitung nie auf die High-Pegel wechselt.
Daraus schliesse ich das irgendwas nicht stimmt. Allerdings hat das Programm so vor 2 Jahren auch funktioniert weshalb ich sehr verwundert bin.
Hier die Absulote Orginacode von vor 2 Jahren:
Bis auf ein paar geändert pins ist alles gleich.Code:$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 8 '44 $crystal = 16000000 Config Pinf.1 = Input 'Quarzfrequenz Config Pind.5 = Output Led Alias Portd.5 Config Pine.5 = Input USB Alias Pine.5 Start Adc 'Ist 1 wenn USB angeschlossen Config Lcdpin = Pin , Rs = Portd.4 , E = Portd.7 , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 Waitms 100 Config Lcdbus = 4 Waitms 100 Config Lcd = 16 * 4 Waitms 100 Dim A As Integer Initlcd Cursor Off A = 0 Do Dim W0 As Word W0 = Getadc(1) Incr A Cls Locate 2 , 1 Lcd "Sensorwert:" Locate 2 , 12 Lcd W0 Locate 1 , 1 Lcd "Messungen" Locate 1 , 11 Lcd A Waitms 100 Loop End
Gruß Sebasti
Wie änderst Du denn die Portleitungen für das Display auf deinem Board?
Ich sehe nur eine Flachbandleitung vom LCD zum Board.
Hast du da noch Steckbrücken geändert?
Was Du im Programm änderst, musst Du auch auf deinem Board entsprechend verdrahten!!
Ich habe die Vermutung, das Schaltung und Programm nicht zusammen passen.
Roland
Robotik & Arduino Homepage
http://www.ardumega.de
wieso springst du von PORTD.5 direkt zu PORTD.7? Ist PD.6 mit etwas anderem belegt?Code:Config Lcdpin = Pin , Rs = Portd.7 , E = Portd.5 , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0,
@rolber: die Portleitungen kann ich nicht ändern. Ich habe die Leitungen wie hier beschrieben auf den Stecker geführt: http://rn-wissen.de/index.php/RN-Def...en#LCD_Stecker
Stckbrücken sind keine Vorhanden.
Ich kann legtendlich den Kompletten Port durch umstecken ändern.
Deine Vermutung mit den Falschen Anschlüssen werde ich mal mit dem Durchgangsprüfer untersuchen.
Ich kann legendlich den Kompletten Port durch umstecken ändern.
@Sheff: In den RN-Definitionen ist die Leitung auf welche der Port 6 führt mit R/W belegt. R/W verwendet man im 4bit-Modus aber nicht weshalb der Port nicht in Benutzung ist.
Hast du R/W auf GND gelegt?
Ja, ich habe R/W auf GND gelegt.
Versuch mal :
in do loop gehört kein dimCode:config LCD = 16*4 Config Lcdpin = Pin , Rs = Portd.7 , E = Portd.5 , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0, Config Lcdbus = 4 Initlcd waitms 100 Do
und waitms macht nur sinn hinterm initlcd
Gento
HallO!
Habe den Beitrag mal durchgelesen.
Es geht ein 10 pol. Stecker vom LCD auf dein Board.
Diese 10 Pole sind mit 10 Pins auf deinem Board verbunden.
Spannungsversorgung, also + - lassen wir mal weg.
Bleiben 8 übrig.
DB4 - DB7 sind schon mal 4.
bleiben 4 übrig.
RS und E sind wieder 2
Bleiben 2 übrig.
Die Pins 5 u 7 auf deinem Stecker nutzt du nicht.
Nun noch die Pins richtig im Programm verknüpfen -- Nur diese Zeile ist wichtig ---
Config Lcdpin = Pin , Rs = Portd.7 , E = Portd.5 , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0
Der Rest ist nur Makulatur!!!
Ich glaube jetzt schaffst Du es.
Ansonsten gib mir die Beschaltung der 10 pol. Buchse und ich schreib Dir die Zeile.
Roland
Robotik & Arduino Homepage
http://www.ardumega.de
Lesezeichen