Forum: Projekte & Code LCD Treiber Routine 4*40


von Peter D. (peda)


Angehängte Dateien:

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

von Rene Zimmermann (Gast)


Lesenswert?

Hallo Peter,

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

Gruß Rene

von Thommas (Gast)


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

von Peter D. (peda)


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

von Simon K. (simon) Benutzerseite


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?

von Thilo M. (Gast)


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?

von Peter D. (peda)


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

von Simon K. (simon) Benutzerseite


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.

von Simon K. (simon) Benutzerseite


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.

von Markus _. (markush)


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

von Stephan H. (stephan-)


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 !!

von klaus (Gast)


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

von Klatscher (Gast)


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 ?

von Peter D. (peda)


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

von Compy (Gast)


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

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Es hat sich natürlich der Fehlerteufel eingeschlichen, bei der 
Initialisierung muß es richtig lauten:
1
  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

von John Doe (Gast)


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 ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.