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?
>Hm, einfach ein schlechtes LCD erwischt?
RW hast du an Masse gelegt?
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
> 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 ...
>RW hast du an Masse gelegt? jetzt schon, gebracht hats leider nichts >Config Lcdbus = 4 , Evtl hilft's ja. leider nein
>>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.
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
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
Probier es mal, indem du es mit "INITLCD" initialisierst und dann erst den Text schreibst.
>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
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?
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
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.
Daniel laut seiner aussage het er es deaktiviert... Erstmal abwarten was von ihm kommt Gruß Tobi
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
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
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
$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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.