Problem mit LCD

Gast #357966
Lesenswert?
• ▲
▼
Hallo

Habe mir von http://www.futurlec.com/ ein ATmega32 Board
gekauft. Passt genau für meine Bedürfnisse. Alles drauf
was ich brauche, vorallem ein LCD-Stecker mit 10k Kontrast-
wiederstand und VCC/GND auf den richtigen Leitung. Flachband-
kabel und Stecker dran und fertig.
Verwendet werden die PIN's des PORT C vom ATmega32.

Leider haben die Jungs einen (aus meiner Sicht) Fehler
gemacht. Sie haben die R/W Leitung nicht auf einen ATmega32
Port gelegt, sondern auf GND. Der Grund ist wohl, dass
Pin 0 und 1 von PORT C beim ATmega32 mit I2C (SDA,SCL)
belegt sind.

Das Problem ist nun, dass alle mir bekannten C-Libraries für
HD44780 LCD-Controller den R/W Pin brauchen um ein "BusyWait"
zu realisieren. (P. Fleury, avr-libc, avrlib)

Ich habe also die Variante die R/W Leitung nicht auf den LCD
Port zu legen, sondern fliegend direkt auf PC1 zu verkabeln,
oder eine Library zu finden (oder selber zu schreiben), welche
ohne die R/W Leitung auskommt.

Frage:

- Hat mir jemand einen Link auf Code, welcher ohne R/W Leitung
  mit einem HD44780 kompatiblen Display arbeitet.
- Stimmt überhaupt meine Annahme, dass es auch ohne R/W gehen
  muss.

Danke

Daniel
Gast #357967
Lesenswert?
• ▲
▼
Wenn Du kein Busy-Wait brauchst und keine andere Quelle auf das Display
zugreift, so dass Du nicht vom Display lesen können musst, dann
brauchst Du den R/W-Pin nicht und kannst ihn fest verdrahten.
Gast #357968
Lesenswert?
• ▲
▼
Hallo,

R/W fest auf GND geht üblicherweise schon, benutze ich auch öfter.
Nachteil ist eben nur, daß man Zwangswartezeiten für das Display
einfügen muß. Die max. nötigen Zeiten stehen im Datenblatt des
Display-Controllers, +10% schaden nicht.
In den Treibern mußt Du nur die Routine, die Busy abfragt, durch eine
entsprechend lange Warteschleife ersetzen.
Sollte eigentlich auch den Libs zu finden sein, wenn man sich nicht so
gut auskennt.

Gruß aus Berlin
Michael
#357969
Lesenswert?
• ▲
▼
Also ich betreibe mien LCD in einer ISR und habe auch R/W an GND.
Das Display ist komplett im RAM abgelegt und die ISR macht alle 5ms
( max. Wartezeit des LCD )ein Zeichen weiter
und wenn das Display 1 x durch ist, wieder von vorn.
So habe ich keine "Timing Sorgen" und muß nur den RAM beschreiben.


Gruß

Antwort schreiben

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.

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.