Character LCD für AVRs mit 4bit Bus

Gast
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.