Hallo nochmal !! Ich hatte hier gestern was zu einem Compiler-Problem beim Versuch, ein 44780-LCD mit Fleurys Code zu betreiben, geschrieben. Der Code wird inzwischen anstandslos übersetzt (lag am makefile). Nun hab ich das hex-file aufm Board, es tut sich aber noch gar nix aufm Display. Ich hab den Code aus test_lcd.c und lcd.c von Fleury benutzt. Die Board-Frequenz, den Port und den uC-Typ hab ich im lcd.h bzw. makefile angepasst. ABER das LCD gibt kein einziges Zeichen von sich... Vielleicht die Verdrahtung ? Hab den 4-bit Mode eingestellt und versorge das Display über VTG von meinem STK500 aus (sollte soweit funzen, da das LCD laut Datenblatt weniger Strom zieht als eine LED). Hat da jemand ne Idee ?? Würd mich sehr über Vorschläge freuen!! Gruß, Thommy
Fangen wir doch mal bei den einfachen Tests an: Versorgungsspannung liegt an? Kontrastspannung liegt an? Wenn Versorgungsspannung da ist, Kontrastspannung stimmt und sonst nichts am LCD angeschlossen ist, müsstest du bereits auf dem LCD in der ersten Zeile lauter Balken sehen. Sind die da?
Hi Karl ! Ich hab jetzt mal ganz banal die Funktion geprüft, und gemerkt, dass man den Poti nur bis ganz auf Endausschlag drehen muss, damit dann die Leerzeichen als Balken angezeigt werden. Nun spinnt aber anscheinend die Datenübertragung zum Display. Es zeigt zwar ne Menge Zeichen an, aber vollkommen sinnlos. Egal, was ich ausgeben möchte, es kommt der wildeste Salat raus - manchmal kommt auch gar nix. Die Verdrahtung hab ich nochmal geprüft - die is so ok. Ich hab die Osc.-Freq. aus meinem STK500 ausgelesen (3,686 Mhz) und lcd.h entsprechend geändert. IO-Mode stimmt auch, Port stimmt, und Diplay-Controller-Typ hab ich auch richtig eingestellt. Was kann da noch fehlen/falsch sein ?! Ich verzweifel langsam über diesem doofen Teil... Dank u. Gruß, Thommy
Ich hab da so eine Vermutung. Trag doch mal probehalber in deiner lcd.h eine Taktfrequenz von 1 Mhz ein.
checkst du das busyflag nach jedem Sendevorgang ab? 3 Nops haben bei mir nicht gereicht! Bei mir gings nur mit Busyflag!
Meine LCD Library wertet Busyflag aus, deshalb muss zwingend Busy-Flag angeschlossen werden. Auch darf das Flachband-Kabel zwischen LCD und AVR nicht zu lang sein. 10-20 cm sollte ok sein.
Hi Fabian und P. Fleury (?) !! Ich weiss leider noch nicht, was ein busy-flag ist oder wie es angeschlossen wird. Könnt ihr mir da vielleicht weiterhelfen ? Danke !
Auf meiner Home page hat es ja unter Projects eine Anleitung mit Schema wie ein LCD angeschlossen werden muss
Hi Peter ! Die Leitungen vom STK500-Port zum LCD sind kaum länger als 10cm (hab ich nun extra nochmal umgelötet). Ich hab auch die Verdrahtung geprüft - ist ok. Ich nenn hier einfach noch ein paar Fakten zum Aufbau/Programmierung: - STK500 mit atmega8 - Quarz mit 4Mhz auf Board (in lcd.h angepasst) - LCD mit 44780-Chip, 4x16 Zeichen (Zeilenanzahl und -länge angepasst; was ist jedoch mit LCD_LINE_LENGTH und LCD_START_LINEx-Parametern ? muss ich die anpassen ?) - LCD_IO_MODE == 1 und dementsprechend verdrahtet - Versorgungsspannung für LCD beziehe ich von STK500-Board - programmiert unter AVR Studio; unter "Source Files" lcd.c und test_lcd.c hinzu gefügt, und unter "Header Files" alle in den *.c-Files geforderten Header-Dateien hinzu gefügt; dein makefile verwendet und MCU name auf atmega8 geändert - der Code wird ohne Mucken compiliert Der Fehler äussert sich so, dass nach dem Übertragen des Codes erstmal nichts geschieht und nach ein- oder zweimaligem Aus-/Einschalten die Anzeige verrückt spielt: mal werden durchgehend Nullen angezeigt, mal sind es gemischte Zeichen. Dabei flimmern hier und dort ein paar horizontale Linien übers Bild, als ob alles ständig wiederholt würde. So, jetzt hab ich hier wirklich alles runtergetippt, was mir zum Aufbau/Programmierung eingefallen ist. Ich hoffe, dass Du einen Fehler entdeckt hast, und würd mich freuen, was von Dir zu hören... Gruß, Thommy
Probier doch mal das: <code> #include <lcd.h> int main (void) { lcd_init(LCD_DISP_ON_CURSOR_BLINK); lcd_puts("Test"); for (;;) {} } </code> Verdrahtung so wie auf dem Bild (Anlage). in der LCD.h fürs erste nur Ports und Pins anpassen. Gruß
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.