www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit LCD


Autor: Daniel Buergin (Gast)
Datum:

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

Autor: johnny.m (Gast)
Datum:

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

Autor: Michael U. (Gast)
Datum:

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

Autor: Stephan Henning (stephan-)
Datum:

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

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also 5ms warten ist schon arg lang. Das kommt eigentlich nur bei
Operationen wie dem Löschen des Displays. Ein einzelnes Zeichen zu
schreiben, geht normalerweise sehr viel schneller.

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.