Wie sieht die Anzeige aus, wenn das LCD noch nicht initialisiert wurde?
Hallo zusammen,
ich habe mir ein gebrauchtes LCD Display mit Board gekauft, um damit einen DIY Beamer zu steuern.
Da der Atmega8, mit dem das Board bestückt war, bei Tests kaputt ging, habe ich mir zwei neue bestellt und eingebaut. Und weil das Ansteuern von LCDs unter Bascom recht einfach ist, habe ich folgenden simplen Code verwendet:
Nur das Ergebnis hat mich etwas verwundert:Code:$regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0 Config Lcd = 16 * 2 , Chipset = Ks077 Config Lcdbus = 4 Config Pinb.1 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Bel Alias Portb.1 Bel = 1 Cls Locate 1 , 1 Lcd "Hello World" Do nop Loop
http://butterflyrobot.bu.funpic.de/Anzeige.JPG
" rel="nofollow" target='_blank'>Bild hier
Jetzt stellt sich mir die Frage: Ist das Teil defekt, oder liegt einfach nur ein Fehler in der Verdrahtung oder im Programmcode vor?
Greetings,
iK3
Wie sieht die Anzeige aus, wenn das LCD noch nicht initialisiert wurde?
Versuchs doch mal mit dem Code:
GrußCode:$regfile = "m8def.dat" $crystal = 1000000 Config Portd = Output Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0 Config Lcd = 16 * 2 , Chipset = Ks077 Config Lcdbus = 4 Initlcd waitms 100 Config Portb.1 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Bel Alias Portb.1 Bel = 1 Locate 1 , 1 Lcd "Hello World" Do nop Loop
Thomas
Zuerst einmal Danke! für die schnellen Antworten.
Zum einen der Init-Bildschirm:
Bild hier
Das ist die Anzeige, wenn ich einfach nur die Hintergrundbeleuchtung einschalte, wenn das mit uwegw's post gemeint war.
Ich habe natürlich sofort auch das Programm von Thomas ausprobiert und weiß nun nicht, ob mich das LCD auf den Arm nehmen will. Ich habe spaßeshalber einige Male den Strom unterbrochen und jedesmal wurde etwas anderes angezeigt:
Bild hier
Bild hier
Bild hier
Bild hier
Bild hier
Bin schon mal gespannt, was ihr dazu meint, mir fällt kein Kommentar mehr ein.
Greetings,
iK3
Hallo!
Poste doch mal den Schaltplan, vielleicht hast du was falsch angeschlossen!?!
Gruß
Thomas
Es hat mich ein wenig Zeit gekostet mit Eagle vertraut zu werden, darum die etwas späte Antwort.
Dies ist also der noch unvollständige (und zugleich mein erster) Schaltplan, der zumindest zeigt, wie das LCD angesclossen ist:
Bild hier
Im übrigen habe ich nachgemessen; das Netzteil liefert saubere 4,95V, daran ändert sich auch über längere Zeit nichts.
Ich habe sämtliche Kabelverbindungen nochmals nachgelötet, um kalte Lötstellen zu vermeiden. (Das Board ist nicht nur mein erster Schaltplan, sondern auch mein erstes Lötobjekt )
Falls sich der Fehler nicht beheben lassen sollte, nutze ich halt nur die 8 oberen Zeichen.
Greetings,
iK3
Hallo!
Dreh mal dein LCD Display um und lies die Bezeichnungen der dort vorkommenden ICs ab. Es kann nämlich sein, dass ein Controller verwendet wird, der von Bascom nicht unterstützt wird.
Gruß
Thomas
Also das Display ist ein TC 1602-09, gibt's bei pollin.de für 7,95€ wie ich im Zuge meiner Recherchen herausgefunden habe.
Ich habe mir auch das dort erhältliche Datenblatt angeschaut, das mir aber leider wenig Neues erzählt hat.
Ich vermute inzwischen ganz stark, dass ich das Teil zusammen mit dem ursprünglichen Atmega8 in die ewigen Jagdgründe getrieben habe, als ich noch überhaupt keine Ahnung von der Platine hatte und einfach nach gut dünken Strom drauf gegeben habe.
Aber ich wäre natürlich genauso glücklich, wenn die Anzeige nur an Bascom liegen würde, dann würde ich die Ausgabe mit Assembler machen.
Greetings,
iK3
Hallo!
Sry, heute komm ich leider nicht mehr dazu, dem Ganzen nachzuforschen (ein paar Sachen fürs Labor morgen sind noch zu erledigen) - aber morgen werd ich mir die Sache genauer ansehen.
Gruß
Thomas
Hallo @iK3
die ersten 8 Zeichen jeder Zeile werden korrekt wiedergegeben.
die zweiten 8 Zeichen jeder Zeile werden nicht korrekt angesteuert, was vermutlich durch Beschaltung des LCD entstanden ist.
Nimm bitte mal das Datenblatt.
Was macht PD5 an 16 schau mal nach?
Aber Atmega 8 ist korrekt- Programm korrekt.
LCD fehlen 8 Spalten je Zeile kann nur durch Ansteuerung falsch sein.
mfG
Lesezeichen