Für alle
das müsste in die codesammlung... warum amchst du eigentlich keinen einfachen busycheck anstatt da immer mit den delays rumzumachen?
Sorry, das Posting war etwas sehr knapp - Panne meinerseits. Also: Das Teil läuft jetzt seit fast 4 1/2 Jahren problemlos auf nem AVR mit 4MHz. Für höhere Taktraten sind die die "pause" Settings anzupassen: z.B. für 8MHz pause40us_ = (80-5) pause2ms_ = (4000-5) pause50ms_ = (100000-5) oder für 16MHz pause40us_ = (160-5) pause2ms_ = (8000-5) pause50ms_ = (200000-5) Und natürlich müssen die Port-Zuweisungen für die Controls und 4bit-Daten LCD_rs_ = (PORTC<<8) + 1 LCD_rsd_ = (DDRC<<8) + 1 LCD_e_ = (PORTC<<8) + 3 LCD_ed_ = (DDRC<<8) + 3 LCD_wr_ = (PORTC<<8) + 2 LCD_wrd_ = (DDRC<<8) + 2 ; LCDdout = PORTC LCDdin = PINC LCDddr = DDRC auf die jeweils verwendeten angepasst werden. Das heißt auch, wenn die Datenbusbits für das LCD dann auf den Bits 0..3 landen statt auf 4..7, muss natürlich auch der swap-Befehl in LCD_put8b entsprechend umgerückt werden. Ich hoffe, das hilft >1 "Wie geht LCD"-Frager. Gruß Johannes P.S.1: Die Funktionen taugen für 2- und 4-zeilige Displays. P.S.2: Die unbenutzen Datenbuspins des LCD sind offen.
Fabian, der Busy-Check funktioniert während der Init eh nicht. Das steht auch in (besseren) Datenblättern. Gruß Johannes
das .include "aio8515.s" ist für deinen avr nehme ich an. wozu ist .area text ? kannste das auch noch hochladen ? und noch eine frage was hat es mit den auskommentierten befehen _LCDinit:: ; cbi >LCD_e_,<LCD_e_ sbi >LCD_ed_,<LCD_ed_ ; cbi >LCD_wr_,<LCD_wr_ sbi >LCD_wrd_,<LCD_wrd_ ; cbi >LCD_rs_,<LCD_rs_ sbi >LCD_rsd_,<LCD_rsd_ auch sich ?
Ich vergaß dazuzuschreiben, dass der Code für den Assembler vom Imagecraft C-Copiler ist... Ja, das .include bindet die I/O Definitionen ein. Das .area text entpricht der CSEG Direktive beim Atmel Assembler, und die > und < "high" und "low". Ansonsten stören den Atmel Asm noch die doppelten Doppelpunkte hinter einigen Labels, mit denen beim Imagecraft Asm globale Funktionen definiert werden. Und die auskommentierten Befehle in der init? Hm, weiß ich echt nicht mehr, warum ich die damals auskommentiert hatte... Störte jedenfalls nicht, und wird wohl auch nicht stören, wenn Du sie wieder aktivierst. Gruß Johannes
mein lcd geht endlich. der fehler lag wohl am timing und daran das der befehl für font und format fehlten. nach 10 mal strom an und aus gings, fragt nicht warum !? ^^ danke für die hilfe grüße g1o
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.