mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Character LCD für AVRs mit 4bit Bus


Autor: Johannes A. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Für alle

Autor: Fabian Knapp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das müsste in die codesammlung... warum amchst du eigentlich keinen
einfachen busycheck anstatt da immer mit den delays rumzumachen?

Autor: Johannes A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian, der Busy-Check funktioniert während der Init eh nicht.
Das steht auch in (besseren) Datenblättern.

Gruß Johannes

Autor: Benedikt W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Johannes A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.