www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD zeigt nur Balken an, weis nicht mehr weiter;)


Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.......

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: as_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: as_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Poti geht, ich ziehe zurück ;)

mfg

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hm, einfach ein schlechtes LCD erwischt?

RW hast du an Masse gelegt?

Autor: as_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Ansatz: du verwendest 4 Datenleitungen --> 4 bit Modus? Dann 
fehlt laut http://www.rn-wissen.de/index.php/Bascom_und_LCD's ein Config 
Lcdbus = 4

Evtl hilft's ja.

mfg

Autor: AVRuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>RW hast du an Masse gelegt?

jetzt schon, gebracht hats leider nichts

>Config Lcdbus = 4 , Evtl hilft's ja.

leider nein

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>RW hast du an Masse gelegt?

>jetzt schon, gebracht hats leider nichts

Wieso jetzt erst? Ich denk mir meinen Teil und mach mich
dann mal vom Acker.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach es mal anders herum:
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

MfG Paul

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Samuel C. (dragonsam)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier es mal, indem du es mit "INITLCD" initialisierst und dann erst 
den Text schreibst.

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht 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
LCD "Hallo"
 außerhalb der
 Do ... Loop
 schreiben. Also:
LCD "Hallo"
Do
Toggle LED
...
Loop

Gruß
Tobi

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

Autor: Samuel C. (dragonsam)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers mal damit:
$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

Locate 1,1
Lcd "Hallo"

Do
Loop
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An PortC liegt auch JTAG.
Hast du das deaktiviert?

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel laut seiner aussage het er es deaktiviert...
Erstmal abwarten was von ihm kommt

Gruß
Tobi

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.