mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [AVR|C] LCD Routinen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: C-Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allemiteinander,

ich bin C-Anfänger und probiere gerade ein wenig mit LCDs rum.
Ich suche nun einen Bibliothek, in der ich alle Pins frei setzen kann, 
da ich nicht ganz am "Standard" bin.

Als µC nutze ich einen AtMega8 und das 1.95E Display von Pollin (dieses 
kleine mit Folienkabel)
Belegung wie folgt:
PC5 - RS
PC4 - E
PC3 - D4
PC2 - D5
PC1 - D6
PC0 - D7

Ich muss dabei sagen, dass ich davor ein wenig mit BASCOM programmiert 
habe, also bin ich kein Anfänger auf dem Gebiet µC.


Die Bibliothek von Peter Fleury habe ich auch schon ausprobiert, doch 
leider bekomm ich immer Errors beim kompilieren.
Die lcd.c und lcd.h sind eingebunden und in der lcd.h sind die 
Pinbelegungen angepasst sowie die Taktfrequenz des µCs.


Ich hoffe ihr könnt mir helfen

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls dich C++ nicht abschreckt, dann kann man in dieser Version die 
Pins frei setzen (beim Aufruf der Initialisierung, ohne 
#define-Gefummel):

Beitrag "Re: LCD Library gesucht für HD44780"

Autor: MitLeser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die lcd-lib von p.fleury ist recht gut und unterstützt auch
den 4Bit-Mode.

Autor: MitLeser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry. Habe den Start-Thread nicht zu Ende gelesen ;-)

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C-Anfänger schrieb:
> leider bekomm ich immer Errors beim kompilieren.

Diese Aussage hat Potential, noch präzisiert zu werden.

Autor: Stephu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du Programmier-Neuling bist, würde mit Hilfe vom Datenblatt ein 
paar Dinge selber Programmieren und dann die Lib von Peter Fleury 
nehmen. Die Funktioniert einwandfrei... evtl. einfach einmal deine Error 
posten.

Greez

Autor: C-Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Programmierneuling bin ich nicht. Programmiere nebenbei noch mit 
Delphi für Windows. Ich bin eigentlich nur C-Neuling.

Komisch, irgendwas hab ich vorher falsch gemacht. Das einzigste was er 
jetzt beanstanded ist das LCD_RW_PORT, etc.
Auskommentieren kann ich das ja nicht, weil ihm sonst eine Deklaration 
fehlt.
Was trage ich denn dort ein, wenn ich RW von Anfang an auf GND gelegt 
habe?

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird LCD_RW_PORT überhaupt irgendwo verwendet?
Wenn ich mich recht entsinne, steht das da nur als Leiche.

Wenn du natürlich einen Link auf die von dir verwendete Lib hättest, 
bräuchte man nicht danach suchen...

Autor: C-Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Link dazu:
http://homepage.hispeed.ch/peterfleury/avr-software.html


RW muss anscheinend 4x verwendet worden, da ich 8x einen Error bekomme, 
jeweils RW_PORT und RW_PIN

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwo gab es heir aber auch mal eine Version, die RW fest auf GND 
voraussetzt.
Hast du mal danach gesucht? Habe gerade nicht die rechte Lust dazu...

Autor: C-Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wenn ich RW einfach auf einen freien Pin zuweise? Dürfte doch 
eigentlich funktionieren

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hilft nicht, wenn der Pin dann verwendet wird.

Man hat bei den LCDs zwei Möglichkeiten: Entweder wartet man nach jedem 
Kommando, bis der LCD-Controller fertig ist, indem man den Status 
abfragt (dafür braucht man RW, weil man ja nicht nur seine Kommandos 
schreibt, sondern auch die Antwort lesen will), oder man wartet einfach 
nach jedem Kommando lange genug, ohne den Status abzufragen - in der 
Hoffnung, daß der Controller dann irgendwann fertig ist.

Wenn du eine Lib hast, die den ersten Weg geht, dann kannst du das nicht 
einfach irgendwohin legen.

Such doch einfach nach einer Lib (es gibt irgendwo welche), die sich 
nicht um den Status kümmern, sondern mit irgendwelchen 
delay_*-Funktionen lange genug warten. Nur dann ist das RW überflüssig; 
am LCD wird es einfach auf GND gelegt (also: immer Schreiben, nie lesen) 
und am AVR gibt es kein RW dafür.

Der Vorteil der ersten Variante wäre, daß man etwas schneller ausgeben 
kann, weil nicht unnötig lange gewartet werden muß. Das hilft aber 
letztlich auch nicht viel, weil das LCD ohnehin relativ langsam ist und 
keine MB/sec ausgeben kann.

Autor: mr. mo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
im anhang ist eine version ohne r/w pin.

Autor: Klaus W. (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du nun gar nicht selber suchen magst und meine C++-Version nicht 
nehmen willst, ist das hier vielleicht der richtige Startpunkt:
Beitrag "Re: LCD nicht nur für einen Port in C"

Autor: Fabian G. (kjion) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Klaus Wachtler
Ich hätte mir deine C++ Version gerne einmal angesehen, aber leider 
wiegelt dein Server nur mit "403 Forbidden" ab.

Autor: Klaus W. (mfgkw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Fabian G. schrieb:
> ... aber leider wiegelt dein Server nur mit "403 Forbidden" ab.

Den Lump werde ich mir am WE vorknöpfen; bis dahin hier als ZIP-Datei.

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.