www.mikrocontroller.net

Forum: Projekte & Code LCD Treiber Routine 4*40


Autor: Peter Dannegger (peda)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ja haufenweise LCD-Routinen, hier mal meine Version.

Ist für ein 4*40 LCD. Die Besonderheit ist, daß es 2 Controller hat, 
also braucht man insgesamt 7 IOs, um es anzusteuern.

Die IOs sind zwar auf einem Port, aber ich hab sie nach bestem Layout 
verteilt. Daher hat die Nibble-Routine etwas zu tun, ist aber mit 
Bitvariablen gut lesbar.

Es lief auf Anhieb, bloß mit der 2.Zeile hatte ich etwas Streß. Man muß 
64 addieren, um in die 2.Zeile zu kommen.

Läuft auf nem ATtiny84. Der hat ja mordsmäßig viel Speicher, also ideal 
zum Entwickeln.


Ich habs eben mal gemacht, da mein Kollege es am LPC-ARM nicht zum 
Laufen gebracht hat. Nun kann ich ihm sagen, daß das Display in Ordnung 
ist.


Peter

Autor: Rene Zimmermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

du schreibst im Quellcode "not 40". Es sind schon 40 nur eben 
Hexadezimal.

Gruß Rene

Autor: Thommas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter

Du soltest bei den Dateinamen <=> Incude-Namen auf die 
Gross/Kleinschreibung achten. Der GCC stammt aus der Linux-Welt und 
könnte desswegen "meckern".

Sowieso, ich meine das Dateien mit *.C (grosses C) vom GCC als C++ Code 
betrachtet wird..?

MfG Thommas

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thommas wrote:

> Du soltest bei den Dateinamen <=> Incude-Namen auf die
> Gross/Kleinschreibung achten. Der GCC stammt aus der Linux-Welt und
> könnte desswegen "meckern".

Ich benutze den WINAVR, unter WINDOWS ist die Schreibweise egal.

Ich editiere und compiliere in der DOS-Box mit ner Batchdatei und da 
gibt es nur Großschrift.


> Sowieso, ich meine das Dateien mit *.C (grosses C) vom GCC als C++ Code
> betrachtet wird..?

Das kann manchmal merkwürdige Unoptimierungen verursachen, daher besser 
den Compilerschalter -xc verwenden.


Peter

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger wrote:
> Thommas wrote:
>
>> Du soltest bei den Dateinamen <=> Incude-Namen auf die
>> Gross/Kleinschreibung achten. Der GCC stammt aus der Linux-Welt und
>> könnte desswegen "meckern".
>
> Ich benutze den WINAVR, unter WINDOWS ist die Schreibweise egal.
>
> Ich editiere und compiliere in der DOS-Box mit ner Batchdatei und da
> gibt es nur Großschrift.

Na super, und was ist mit Leuten, die das unter Linux kompilieren 
wollen? Ziemlich ignorant oder nicht?

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich denke dass jeder den Code auf seine Gegebenheiten anpassen 
sollte, bzw. darauf achten sollte, dass er funktioniert.
Man kann als Entwickler/Bastler ja nicht alle verfügbaren 
Betriebssysteme bedienen, das sprengt wohl jeden Rahmen.

Vielleicht wär's empfehlenswert, das OS und den Compiler beim Posting 
anzugebben?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon K. wrote:

> Na super, und was ist mit Leuten, die das unter Linux kompilieren
> wollen? Ziemlich ignorant oder nicht?

Daß Linux damit nicht klarkommt, wußte ich nicht. Bisher hat sich ja 
noch kein Linuxer über meine Beispiele beschwert.

Wenn es Probleme auf anderen Plattformen gibt, dann einfach mal sagen 
und nicht gleich die Leute als Ignoranten schimpfen.
Ich beschwere mich ja auch nicht, daß Unix-Sourcefiles in einer einzigen 
Zeile stehen. Ich hab einen Editor, der sie umwandeln kann. Man muß sich 
nicht an Kleinigkeiten festbeißen.

Es ist allerdings unter Windows nicht trivial, komplette Verzeichnisse 
auf Kleinschrift umzubenennen.


Peter

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thilo M. wrote:
> Naja, ich denke dass jeder den Code auf seine Gegebenheiten anpassen
> sollte, bzw. darauf achten sollte, dass er funktioniert.

Und deswegen soll man erstmal kilometerweise fremden Code durchgehen und 
solche trivialen Fehler korrigieren? Das ist meiner Meinung nach 
Gemurkse.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger wrote:
> Simon K. wrote:
>
>> Na super, und was ist mit Leuten, die das unter Linux kompilieren
>> wollen? Ziemlich ignorant oder nicht?
>
> Daß Linux damit nicht klarkommt, wußte ich nicht. Bisher hat sich ja
> noch kein Linuxer über meine Beispiele beschwert.

Hab ich jetzt auch nur getippt ;)

> Wenn es Probleme auf anderen Plattformen gibt, dann einfach mal sagen
> und nicht gleich die Leute als Ignoranten schimpfen.
> Ich beschwere mich ja auch nicht, daß Unix-Sourcefiles in einer einzigen
> Zeile stehen. Ich hab einen Editor, der sie umwandeln kann. Man muß sich
> nicht an Kleinigkeiten festbeißen.

Naja, nimm es mir nicht übel, aber der Vergleich hinkt etwas ;) Es ist 
wesentlich mühsamer in den Code-Dateien rumzuwurschteln als sich einen 
vernünftigen Editor runterzuladen (was man als Programmierer eh haben 
sollte)

> Es ist allerdings unter Windows nicht trivial, komplette Verzeichnisse
> auf Kleinschrift umzubenennen.

Musst du doch garnicht. Reicht doch, wenn du den korrekten 
(Groß/Kleinschreib-technisch gesehen) Dateinamen angibst. Dann sollte es 
unter Windows als auch unter Linux funktionieren.

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also was hier abgeht lässt sich kaum noch in Worte fassen!

Da stellt jemand der Community seinen Code zur Verfügung und dann wird 
rumgenölt wegen der Schreibweise der Dateinamen, zusätzlich wird der 
Autor auch noch als Ignorant beschimpft. Gehts noch??? Dann lasst die 
Finger weg von dem Teil wenn euch was nicht passt, ihr habt nichts 
bezahlt dafür und Peter ist euch nichts schuldig - basta!

@Peter: Wie immer schön kompakter Code, danke dafür!

Markus

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
traurig das es Leute gibt die alles in Häpchen brauchen, weil sie nicht 
vom Brot abbeißen können.

@Peter, vielleicht sollten alle den Code in wenigstens 2 Versionen hier 
reinstellen. Für Linux und Windows mindestens.
Dann gehts schneller mit Copy & Paste. ;-))
Schließe mich Markus an !!

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich schliesse mich "Markus _neu" vollstens (tolles Wort) an !!!
(schreibt man glaub ich "full ACK")

@Peter Dannegger: Danke !!!
Ich werd mir den code jetzt runterladen (ok, hab ich inzwischen) und 
ansehen.
(und mich dann beschweren weil es kein "#ifdef BUILD_FOR_Z80" gibt ;-) )

klaus

Autor: Klatscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habs eben mal gemacht, da mein Kollege es am LPC-ARM nicht zum
>Laufen gebracht hat

Verstehe ich nicht. Lag's an dem ARM, an Deinem Kollegen, oder dass Du 
so ein toller Typ bist ?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klatscher wrote:
>>Ich habs eben mal gemacht, da mein Kollege es am LPC-ARM nicht zum
>>Laufen gebracht hat
>
> Verstehe ich nicht. Lag's an dem ARM, an Deinem Kollegen, oder dass Du
> so ein toller Typ bist ?

Es lag daran, daß er den RW-Anschluß nicht beschaltet hatte.


Peter

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--flame-an
Hey, Windows ist doch sowieso total scheise und Linux das Allerbeste der 
Welt, oder umgekehrt oder so.
--flame-aus

Keine Trolle füttern, die sind eh schon fett genuch...

Prima Kode, thx g

Autor: Peter Dannegger (peda)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es hat sich natürlich der Fehlerteufel eingeschlichen, bei der 
Initialisierung muß es richtig lauten:

  LCD_RS = 0;

Nun fragt sich bestimmt mancher, warum es trotzdem funktioniert hat.

Die ersten Befehle sind nur zur Sicherheit, falls das Display sich in 
einem unbekannten Zustand befindet.
Der wirklich wichtige Befehl ist der nur Umschaltung in den 4-Bit Modus 
und selbst der wird ja nicht ausgeführt.
Aber er ist ein Kombibefehl mit dem Befehl in den 2-Zeilenmodus. Dieser 
wird dann Nibble-weise ausgeführt, aber da das LCD noch im 8Bit-Modus 
ist, wird das 2.Nibble ignoriert.


Peter

Autor: John Doe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn man linux mit windows vergleichen kann, dann kann man sicher auch 
ubuntu, kde und co mit ms-dos vergleichen, oder? was da wohl besser ist. 
ach ja, stimmt ...

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.