Hallo, Ich bräuchte Hilfe bei der Ansteuerung eines PC1602L Displays mit einem Atmega48, es handelt sich um den Code aus dem Tutorial. Verkabelung passt, habe Spannungen messen können. Atmega48 läuft ohne Probleme. Nur die Hintergrundbeleuchtung ist noch nicht angeschlossen. vl liegts an der Optimierung? wenn wer was nützliches weiß bitte um Hilfe. Im Anhang ein Teil der Schaltung und mein Code Danke jakobolus
Nunja, es wäre schon hilfreich, wenn Du auch noch eine Frage dazu stellst oder, noch besser, beschreibst, was nicht geht. Das sagst, Du brauchst Hilfe. Aber wobei ?
Ja das Problem ist das das LCD nichts anzeigt, bzw. schon die Initialisierung funktioniert nicht(kriege keine scharzwn Felder auf dem LCD) . Arbeite mit AVR Studio, der Compiler gibt auch keine Fehler oder Warnings raus. lg Jakobolus
Schwarze Felder im Display kommen schon beim anlegen der Versorgungsspannung. Nach der Initialisierung müssen die weg sein. Dreh mal am Kontrast (Poti R18!) Sonst falsch angeschlossen oder Display putt.
Die Versorgung steht stabil am Display +5V. Kontrast Poti habe ich auch schon probiert ändert nix. Ist das bei jedem hd44780 kompatiblem LCD so, dass es schwarze Balken anzeigen muss wenn es eine Versorgung hat und noch nicht initialisiert wurde? lg jakobolus
Bei den Displays (mit HD44780-kompatiblen Chip), welche mir in die Finger gekommen sind*, war bei allen jede Zweite mit schwarzen Klötzen gefüllt. Nachdem man die Versorgungsspannung angelegt wurde. Erst nach der Initialisierung ist alles leer. Aber man hat ja schon Pferde kotzen sehen. Will heißen, dass es gerade bei Dir anders ist. Eventuell hilft es ja, wenn Du die DB0 bis DB3 vom Display auf GND legst? Nur so als Idee. Du hattest etwas über "Optimierung" geschrieben. Lass die doch mal weg. Fluppt es dann? *Ich hatte nur billige LCDisplays drei oder vier verschiedene Typen.
Habe DB0-3 bereits auf Masse geschlossen Gerade das LCD nur mit VEE,VDD,und Kontrast angeschlossen macht trotzdem keine Schwarzen Klötzte, wird wohl das kotzende Pferd sein. Habe auch schon mit und ohne "optimierung" ausprobiert. Fuses wären mir auch keine bekannt, die da stören könnten. lg jakobolus
So haha habe etwas neues herausgefunden :) int main(void) { DDRB = 0b01000000; PORTB |= (1<<PB1); // Initialisierung des LCD // Nach der Initialisierung müssen auf dem LCD vorhandene schwarze Balken // verschwunden sein# lcd_init(); PORTB &= ~(1<<PB1); // Text in einzelnen Zeichen ausgeben lcd_data( 'T' ); lcd_data( 'e' ); lcd_data( 's' ); lcd_data( 't' ); // Die Ausgabemarke in die 2te Zeile setzen lcd_setcursor( 0, 2 ); nach dem Aufruf lcd_init() häng sich der code auf und der Proz hängt fest. Vl kann mir ja jetzt wer helfen ;) lg jakobolus
1 | // warten auf die Bereitschaft des LCD
|
2 | _delay_ms( LCD_BOOTUP_MS ); |
LCD_BOOTUP_MS?????? Wo hast du dieses deklariert???
LCD_BOOTUP_MS ist in der lcd-routines.h definiert //////////////////////////////////////////////////////////////////////// //////// // LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) #define LCD_BOOTUP_MS 15
Hast du im AVR-Studio die CPU-Frequenz überprüft bzw. passt der im Source-Code eingetragene Wert zu deinem Board?
Guten morgen, vorweg zum LCD-Display; ist das dieses hier ? http://www.synes.co.th/product/other-products/PC1602-L%20DataSheet.pdf Dann benötigst Du einen negative Spannung (bis -8V) für den Kontrast an Vee. Diese könnte man mit dem Atmel indirekt erzeugen und ich erhalte -4,8V mit BAT85 Dioden, das reicht für mein LCD-Display aus. Das Pin PD3 wird per PWM 50%/50% angesteuert und die Frequenz liegt im kHz Bereich. Ein weitere Möglichkeit ist der ICL7660 als Spannugsinverter von +5V auf -5V zu nutzen. Sprut.de liefert da einen Vorschlag: http://www.sprut.de/electronic/lcd/kontras2.gif Des weiteren benötigen die LCD Displays mehr als 100µS Zeit zu Initialisierung. Für HD44780U Chips wird 15ms angegeben ! http://www.8051projects.net/lcd-interfacing/initlcd.gif Ich hoffe es hilft Dir etwas.
Sry das ich mich erst jetzt wieder melde Ja Uwe hatte recht, es war die negative Kontrastspannung. Das ist wohl so bei niedertemp. LCDs Vielen Dank für die Hilfe. Jakob
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.