Character LCD für AVRs mit 4bit Bus

Gast #421315
Lesenswert?

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 #421317
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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 schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren