mikrocontroller.net

Forum: Compiler & IDEs LCD-Ansteuerung ohne delay()


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hat jemand schon mal versucht ein LCD (HD44780) ohne die delay()-Fkt. 
anzusteuern???
Meine Vorstellung war die Pausen über einen Timer-Interrupt zu 
steuern...

Falls jemand dazu eine Idee oder schon Erfahrung damit hat, freue ich 
über die Beiträge und schon mal 'Danke' im voraus...

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch einfach das Status-Bit (Busy-Flag) abfragen....

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich mal per RTOS-Timer gemacht. Hat den Vorteil, dass es haargenau 
so aussieht wie mit Delays, d.h. die Version unterscheidet sich von der 
Delay-Version nur durch die Art, wie die Delays implementiert sind, ist 
ansonsten der gleiche modifizierte Fleury-Code.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Start braucht man immer eine Zeitverzögerung. Ob man
diese mit delay, nem Timer oder schleife realisiert ist egal.

Danach kann man das Busyflaf des Displays benutzen. Man benötigt
dann jedoch den RW-Pin des Displays.
Sinnvoller als nach einem Schreibvorgang dann das Busy abzufragen
(Befehle können dauern!) ist es vor dem Schreiben zu
schauen, ob das Display bereit ist.
Durch diese Rückmeldung ist es auch moglich in gewissem Masse
zu testen, ob das Display richtig reagiert (Wartezeit beschränken
z.B. Watchdog).

gruß hans

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gast wrote:
> hat jemand schon mal versucht ein LCD (HD44780) ohne die delay()-Fkt.
> anzusteuern???


Beitrag "Formatierte Zahlenausgabe in C"


Peter

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe die Displayansteuerung mal im Timerinterrupt gemacht.
So alle zwei ms ein neues Zeichen ausgeben wenn in einem Pufferbereich 
was neues verfügbar ist. Braucht wenig Zeit, nur Schreibzugriffe 
erforderlich, Busy muss nicht abgefragt werden. Man kann sogar ein 
"scrollen" ermöglichen, wenn das gesamte Display als "Bildspeicher" im 
internen RAM gespiegelt wird. Alle Ausgaben an das Display sind dann nur 
Speicherzugriffe auf die entsprechenden RAM-Zellen.
Wichtig: bei der Initialisierung müssen die Zeiten immer eingehalten 
werden. Also erst die übliche INIT-Sequenz und dann erst Interrupt 
freigeben.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo und danke für die schnellen Antworten!

Ich bin im Augenblick soweit, dass die Zeichen in den Bytestrom 
umgewandelt werden und zwischen gespeichert werden. Dieser wird dann 
Timergesteuert übertragen.
Jetzt bleiben 'nur' noch die sinnvollen Ausgaben zu organisieren...

Viele Grüße Sven

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.