Gast
#421313
Für alle
|
Anzeige
|
Character LCD für AVRs mit 4bit Bus
Gast
#421313
Für alle
Gast
#421314
das müsste in die codesammlung... warum amchst du eigentlich keinen einfachen busycheck anstatt da immer mit den delays rumzumachen?
Gast
#421315
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.
Gast
#421316
Fabian, der Busy-Check funktioniert während der Init eh nicht. Das steht auch in (besseren) Datenblättern. Gruß Johannes
Gast
#421317
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 ?
Gast
#421318
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
Gast
#421319
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 Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|