LCD zeigt nur Balken an, weis nicht mehr weiter;)

Gast #1643862
Lesenswert?

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
Gast #1643867
Lesenswert?

>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.......
Gast #1643874
Lesenswert?

>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
Gast #1643879
Lesenswert?

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
Gast #1643909
Lesenswert?

> 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 ...
#1644104
Lesenswert?

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
Gast #1644629
Lesenswert?

>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?
#1644887
Lesenswert?

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
1
LCD "Hallo"
 außerhalb der
1
 Do ... Loop
 schreiben. Also:
1
LCD "Hallo"
2
Do
3
Toggle LED
4
...
5
Loop

Gruß
Tobi

PS.: Aber du weisst das der AVR läuft?
#1644966
Lesenswert?

Probiers mal damit:
1
$regfile = "m32def.dat"
2
$framesize = 32
3
$swstack = 32
4
$hwstack = 32
5
$crystal = 16000000
6
$baud = 9600
7

8
Config Lcd = 16 * 2
9
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 ,
10
Db7 = Portc.1 , E = Portc.2 , Rs = Portc.0
11

12
Locate 1,1
13
Lcd "Hallo"
14

15
Do
16
Loop
17
End

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
#1644971
Lesenswert?

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.
Gast #1645114
Lesenswert?

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
Gast #1645116
Lesenswert?

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
#1645215
Lesenswert?

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
Gast #1652974
Lesenswert?

$regfile = "m32def.dat"
 $framesize = 32
 $swstack = 32
 $hwstack = 32
 $crystal = 1600000



 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , 
Db7 = Portc.1 , E = Portc.2 , Rs = Portc.0
 Config Lcd = 16 * 2
 Config Portd.6 = Output

initlcd

End
#1653220
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren