Hallo zusammen
Ich nutze:
Atmega32 @ 16Mhz
LCD YL162-90
Mein Code sieht so aus:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 ,
Db7 = Portc.1 , E = Portc.2 , Rs = Portc.0
Do
Lcd "Hallo"
Loop
End
Aus irgendeinem Grund seh ich nur die schwarzen Balken, aber keinen
Text:
Pin 1 ist an GND, Pin 2 an +5V, Pin 3 (Kontrastspannung) über ein Poti
an -5V.
Ich habe schonmal ein LCD dieses Typs angeschlossen, damals hats
geklappt.
Übrigens: JTAG Interface an Port C ist auch deaktiviert.
Habt ihr Ideen an was es liegen könnte?
Liebe Grüsse
>Pin 1 ist an GND, Pin 2 an +5V, Pin 3 (Kontrastspannung) über ein Poti>an -5V.
Braucht das die -5V? Dreh mal am Kontrast.
>Ich habe schonmal ein LCD dieses Typs angeschlossen, damals hats>geklappt.>Habt ihr Ideen an was es liegen könnte?
Falsch angeschlossen würde ich sagen. Oder ein kurzer
irgendwo, oder eine Leitung vergessen, oder.......
>Braucht das die -5V? Dreh mal am Kontrast.
Am Poti hab ich schon alles ausprobiert, jetzt scheint es mir gut
eingestellt, so das man gerade noch ein bisschen die feldchen sieht,
aber natürlich probier ich immer wieder alle stellungen aus, wenn ich
was verändere, in der Hoffnung das es jetzt klappen sollte;)
>Falsch angeschlossen würde ich sagen. Oder ein kurzer>irgendwo, oder eine Leitung vergessen, oder.......
Hm eigentlich nicht, hab mit dem Multimeter schon alles durchgemessen,
kommt alles da an wos soll und es sind auch keine Leitungen
kurzgeschlossen.
Noch ne Idee:
Ich arbeite mit Kupferlackdraht, der kommt auf der Schaltung natürlich
nah zu anderen Leitungen. Kann es sein dass sich die Signale da induktiv
irgendwie überlagern oder sowas?
Habe das Problem aber sonst nirgends, die RS232 Verbindung
beispielsweise klappt wunderbar
Wär nur eine Idee, aber:
Funktioniert das Einstellen des Kontrastes über das Poti? Wenn nicht:
kann es sein, dass du die Reihenfolge der Pins komplett vertauscht hast?
Ist mir mal passiert, zufälligerweise haben dann auch die
Spannungsversorgung des Controllers und die der Hintergrundbeleuchtung
gepasst, alles dazwischen natürlich nicht.
mfg
@as_ hab ich vorher auch gerade dran gedacht, doch zur Sicherheit
nochmal im Datenblatt nachgeguckt, es stimmt so wies jetzt ist
Hm, einfach ein schlechtes LCD erwischt?
> Dann fehlt (...) ein 'Config Lcdbus = 4'
Da das Display im Pin-Modus verwendet wird ('Config LCDpin = Pin, ...'),
muss das eigentlich nicht dazu; der BASCOM Pin-Modus kann nur 4bit.
Aber Probieren schadet nicht ...
Wenn du mit bascom arbeitest kannst du über
>>Options -> Compiler -> LCD
Die pins und den Bus-Mode einstellen. bei mir wollte es erst auch nciht
richtig klappen bis ich da die pins wie im Code eingestellt hatte und
den Mode aus 4-Bit umgestellt hatte.
Versuch das mal. Ansonsten hast du vll noch ein anderes LCD um auszu
schließen das es kaputt ist?
Leider steht im datenblatt nicht (was bei pollin drin ist) welches Level
die LCD Spannung haben muss/soll. Versuch mal die Kontrastspannung mit
dem Poti nicht an -5V sondern an +5V anzuschließen.
Gruß
Tobi
>Mach es mal anders herum:
hab ich probiert, bringt nix
>Die pins und den Bus-Mode einstellen.
leider erfolglos
>Versuch das mal. Ansonsten hast du vll noch ein anderes LCD um auszu>schließen das es kaputt ist?
Ja ich hab gerade ein anderes angeschlossen -> selbes ergebniss: Balken
aber kein Text
>Versuch mal die Kontrastspannung mit>dem Poti nicht an -5V sondern an +5V anzuschließen.
Obwohl ich bei den anderen des selben Typs immer -5V am Poti hatte werd
ich das mal versuchen und von den Ergebnissen berichten
>Probier es mal, indem du es mit "INITLCD" initialisierst und dann erst>den Text schreibst.
hat leider auch nix gebracht
man man man, wo steh ich (wir?) auf dem Schlauch?
Marius schrieb:
> man man man, wo steh ich (wir?) auf dem Schlauch?
Wenn wir das wüssten wären wir weiter...
To W. schrieb:
> Wenn du mit bascom arbeitest kannst du über>>>Options -> Compiler -> LCD> Die pins und den Bus-Mode einstellen. bei mir wollte es erst auch nciht> richtig klappen bis ich da die pins wie im Code eingestellt hatte und> den Mode aus 4-Bit umgestellt hatte.
Haste das schon probiert?
Wenn ich mir den Code mal so ansehen würde ich da etwas ändern...
Marius schrieb:
> Mein Code sieht so aus:>> $regfile = "m32def.dat"> $framesize = 32> $swstack = 32> $hwstack = 32> $crystal = 16000000> $baud = 9600>> Config Lcd = 16 * 2> Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 ,> Db7 = Portc.1 , E = Portc.2 , Rs = Portc.0>> Do> Lcd "Hallo"> Loop> End
ich würde die
Ha erstens den Startpunkt des Strings gesetzt und zweitens das ganze mal
aus der Schleife genommen. Ich weiß nicht, wie so ein Display auf
derartige Datenfluten reagiert.
MfG Sam
Samuel C. schrieb:
> Ha erstens den Startpunkt des Strings gesetzt und zweitens das ganze mal> aus der Schleife genommen. Ich weiß nicht, wie so ein Display auf> derartige Datenfluten reagiert.
Das ist dem ziemlich egal.
Du könntest auch einfach nur LcdInit benutzen und nachsehen, ob die
Balken verschwinden.
Zudem ist es ganz gut, bei ersten Tests Minimalbeispiele zu benutzen. In
deinem Programm kommt keine UART vor, also sollte die erst mal raus.
To W. schrieb:
>> Die pins und den Bus-Mode einstellen. bei mir wollte es erst auch nciht>> richtig klappen bis ich da die pins wie im Code eingestellt hatte und>> den Mode aus 4-Bit umgestellt hatte.> Haste das schon probiert?
Ja hab ich schon so eingestellt - ohne Ergebnis
To W. schrieb:
> ich würde dieLCD "Hallo" außerhalb der Do ... Loop schreiben.
hab ich versucht - gebracht hats nix
To W. schrieb:
> PS.: Aber du weisst das der AVR läuft?
Ja, hab Pin PD6 so programmiert, dass er al 2 Sekunden ein/ausschaltet -
das funktioniert!
Karl heinz Buchegger schrieb:
> LcdInit
du meinst sicher initlcd?
Hab in meinem Programm die Baudeinstellung rausgenommen und nur initlcd
als Quelltext (also natürlich noch die configsachen und so gelassen!)
die balken bleiben
To W. schrieb:
> Daniel laut seiner aussage het er es deaktiviert...
genau, hab ich gemacht
Also, ich mache jetzt mal alle Verbindungen neu - dann schauen wir
nochmal ob das Problem weiterbesteht;)
Bis später
Fragender schrieb:
> Samuel C. schrieb:>> Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 ,>> Db7 = Portc.1 , E = Portc.2 , Rs = Portc.0>> Darf man die 4 Datenleitungen so am Port verteilen?>> oder wäre es beser so:>> Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 ,>> Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Das ist völlig egal... das wird dann passend compiliert!
Marius schrieb:
> To W. schrieb:>> PS.: Aber du weisst das der AVR läuft?>> Ja, hab Pin PD6 so programmiert, dass er al 2 Sekunden ein/ausschaltet -> das funktioniert!
Das ist aber nicht im Code... kannste du vll. mal den ganzen Code
posten? Der fehler muss ja nicht unbedingt in dem Teil iegen den du
gepostet hast.
Gruß
Tobi
Naja das ist aber noch immer nicht der ganze code... wo ist der teil der
die led zum blinken bringt bzw. den port togglet?
Noch ein Kleiner tip:
Bei dem code den du gepostet hast, ist keine endlos schleife... somit
fällt der mega in einen undefinierten zustand zurück, was eher fürs LCd
ist...
Gruß
Tobi