Hallo, wir verwenden das LCD Modul EA DIP204-4 (Kontroller KS0073) von Electronic Assembly mit 4 zeilen und 20 Zeichen pro Zeile und einen ATMega128. Folgender Code ist dazu wichtig: ... // Port für das LCD festlegen #asm .equ __lcd_port=0x15 #endasm // Includes #include <lcd.h> #include <delay.h> // LCD modul initialisieren mit 20 Zeichen pro Zeile lcd_init(20); // Text auf LCD ausgeben unsigned char counter = 0; // 80 mal ein a auf das LCD einfügen for(counter = 0; counter < 80) { lcd_putsf("a"); // gib a aus auf LCD delay_ms(300); // warte } ... Eigentlich sollte das Display laut Hersteller (und man kann die Stellen auch zählen) 20 Zeichen pro Zeile enthalten und 4 Zeilen hoch sein -> also 80 Zeichen fassen können. Das obere Programm-Snippet füllt nach und nach das Display mit 'a', DOCH ab Stelle 13 in Zeile 1 schreibt das LCD das 'a' auf einmal in Zeile 1 UND in Zeile 2 weiter!!! Ab da gibt es dann ein wildes Durcheinander! Was ist da falsch? Kennt jemand zufällig dieses Problem? Muss man vor dem 1. Schreiben auf das LCD noch etwas anderes inizialisieren am LCD? Nromalerweise sollte es genügen, "lcd_init(20);" aufzurufen... Ich bin für jede Hilfe dankbar, denn es handelt sich hierbei um eine Studienarbeit... Gruß.
Das Display wird anscheinend nur für 1 Zeile initialisiert, und nicht für 2 (oder mehr). Dann bekommt man solche Erscheinungen...
Hi, das Problem liegt darin das das IC (Ks0073) nicht 100% kompatibel zum HD44780 ist. In der Codesammlung findest du fertige Routinen von mir zur Ansteuerung des Display's per SPI. Ansonsten muesstest du mal in der Headerdatei bei dir nach den Zeilenadressen suchen und diese richtig abaendern. Mfg Dirk
Vielen Dank erstmal für Eure schnelle Antworten! Ich werde das mrogen gleich mal in Angriff nehmen und dann wieder berichten. Gruß
@DIRK: Ich habe mir deine "lcd_spi2.zip" runtergeladen. Jetzt habe ich folgendes Problem: Woher bekomme ich die "avr/io.h"? ich habe nur die "stdio.h". Mit der funktioniert es nicht. Wäre super wenn du mir helfen könntest! Gruß
Hi, befindet sich in der akttuellen WIN AVR Version (GCC). Anscheinend benutzt du einen anderen C Compiler... Mfg Dirk
Ich benutze den CodeVisionAVR. Wäre es sinnvoll die io.h und io.c(?) vom WIN AVR zu importieren? Würde das überhaupt funktionieren? Oder kannst du mir einen anderen Weg empfehlen? Danke
Hi, das kann ich dir leider nicht beantworten.... da ich noch C Anfaenger bin und dieses mein erstes C Projekt war. Ansonsten den Code von mir anschaun und auf CodeVision portieren oder wie gesagt in deiner Headerdatei die Zeilenadressen suchen und abaendern. Mfg Dirk
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.