mikrocontroller.net

Forum: www.mikrocontroller.net Das LCD-Problem / Lösungsansatz


Autor: Lord of Lightning (lightninglord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also nachdem das mit dem LCD jetzt überhand nimmt und die Lösungen 
überall Artefakmäßig Verteilt sind hier mein Lösungsvorschlag:

Eine Wikipage mit allen Funktionierenden Ansteuerungsroutinen aller µC 
und Sprachen. Eine Codesammlung also. Über den Titel bin ich mir noch 
nicht im klaren, aber vieleicht gibts ja schon Vorschläge( z.B. LCD 
Codesammlung o.Ä. ).
Die Wiki soll eine Tabelle werden wo die Distri-Bezeichnungen 
drinstehten, der LCD-Controller und eine Spalte mit dem Quellcode.
Im Quellcode ( Zip-File ) sollten enthalten sein:

* Der Code, Header und Inc-Files sein ( sobalt vom Standart abweichend 
oder selbstgeschrieben )

* Beschreibung mit: Anschlußplan, Fuses ( Takt etc. ), kurze Erklärung 
der Routinen

* Das LCD-Controllerdatenblatt ( wenn möglich vom Hersteller, nicht vom 
Distri )

Was könnte man den noch beifügen? Nehn HexFile das Funktioniert zum 
Testen, wird aber schwer da es ja ne große menge möglicher 
Zielcontroller gibt. Ne Checkliste wäre nicht schlecht oder was meint 
ihr?

Freue mich auf das Gemeinschaftsprojekt mal schauen was draus wird, 
hoffe das es klappt.

Grüßle

Autor: Schwing! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Finde ich sehr gute Idee!

Autor: Franke Michael (appletree)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein guter Ansatz war schon mal die Codesammlung.
Problematisch ist allerdings die Tatsache das man sich durch die Threads 
hangeln muss, und irgendwann zwischen Mitte und Ende der ausgebesserte 
Code steht.
Mag sein das ich zu faul bin, aber es währe mir lieber wenn es nach 
Prozessorfamilie aufgeteilt wird.PIC-LCD-WIKI , AVR-LCD-WIKI.
Auch sollte trotz allem am Anfang das Display an sich besprochen werden.
Flussdiagramme für Initialisierung, senden eines Datenbytes, usw.
Um schon im vornherein zu verhindern das die Leute auf die Idee kommen 
den Code ala cut&paste zu nutzen.
Und ein fett gedruckter Satz am Anfang.
Wer will das es funktioniert der muss den Code selber schreiben!!!

Autor: Franke Michael (appletree)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vergaß noch etwas wichtiges.
Strukturierung nach Controller.
Das eine 16x2 hat mit einem anderen 16x2 schlimmstenfalls überhaubt 
nichts gemeinsam.
ICh hatte mich im Anfang mit dem "AVR-Tutorial:_LCD" auseinander 
gesetzt.
Bis ich nach zahlreichen Misserfolgen das Datenblatt des Controllers 
suchen wollte um zu merken das mein LCD-Display kein HD44780 sondern 
einen S6A0069 zur Ansteuerung besitzt.
Deswegen mein Verständnis für Leute die irgendwann dann doch mal im 
Forum nachfragen :)


Trotz allem ein großes Dankeschön an die Leute die das 
"AVR-Tutorial:_LCD" geschrieben haben.
Sonst hätte ich das Rad neu erfinden müssen.
Und als Start ist es super

Autor: Lord of Lightning (lightninglord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So also ich hab mal mit der Wiki angefangen:

LCD Codsammlung

Die Codes werden noch geupploaded ( werde erst mal die ASM hochladen, 
die in C muss ich noch schreiben ), werde noch für das EADIP128 einen 
Code schreiben, das hbe ich auch noch.

Wenn ihr für Displaycontroller funktionierende Codes habt bitte ich euch 
diese mit reinzustellen oder mir zu schicken, ich stell sie dann rein 
und schaue auch nach dem DB ( falls nich Vorhanden )

EDIT: Mist ich hab bei dem Artikelnamen nene fehler, wie kann ich den 
ändern? Danke

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lord of Lightning wrote:
> So also ich hab mal mit der Wiki angefangen:
>
> LCD Codsammlung

und direkt verschrieben? Codesammlung wohl eher. Und hosten auf fremde 
Mirrors ist nicht immer das Beste, wegen der Verfügbarkeit.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Wiki Idee ist klasse,

man sollte die Anschlussart noch Unterteilen, also
8 Bit 4 Bit-Bus oder Seriel.

Gruß hans

Autor: Lord of Lightning (lightninglord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man mir verrät wie ich auf µC.net hosten kann werde ich das gerne 
tun

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lord of Lightning wrote:
> Wenn man mir verrät wie ich auf µC.net hosten kann werde ich das gerne
> tun

Eine Alternative, die ich wüsste, wäre im Forum hochladen.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Lord of Lightning (lightninglord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So die Seite hab ich jetzt mal richtig benannt

LCD Codesammlung für AVR

Ein fleißiger Admin hat die andere ja schon gelöscht, das ging ja fix 
danke.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine dumme Frage:
Bevor zu jedem LCD Controller eine eigene Software entsteht, wäre es 
nicht erstmal sinnvoller eine Liste mit HD44780 kompatiblen LCDs zu 
machen, und zu allen nur teilweise kompatiblen einen extra Code, bzw. 
dazu schreiben was man beachten muss ?
Was ist z.B. beim S6A0069 anders als beim 44780? Beim Überfliegen des 
Datenblatts sehe ich zumindest auf die Schnelle keinen Unterschied.

Autor: Lord of Lightning (lightninglord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau das ist das Problem, bei den wenigsten siehste beim überfliegen 
die kleinen Unterschiede beim KS0070B ist das Timing und die Init leicht 
anders, aber das macht sich deutlichst bemerkbar.

Eine Liste brauchst ja nicht machen, trägste einfach den LCD in die 
entsprechende spalte ein, ne Fußnote dabei das der 100% kompaktibel ist, 
und fertig. Neue Software hab ich noch nicht geschrieben, das waren 
alles alte Codes, nur die C-Codes schreibe ich neu, sowieso auch aus 
persönlichem Interesse, von daher

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lord of Lightning wrote:
> Genau das ist das Problem, bei den wenigsten siehste beim überfliegen
> die kleinen Unterschiede beim KS0070B ist das Timing und die Init leicht
> anders, aber das macht sich deutlichst bemerkbar.

Also ich sehe beim Timing keinen Unterschied (ob da jetzt 37 oder 39µs 
steht ist doch egal, wer das Timing so knapp einstellt, der ist selber 
schuld.) Und auch die Init ist in meinen Datenblättern identisch. Ebenso 
beim S6A0069. Falls ich doch was übersehen habe, klärt mich bitte auf.

Ich habe eine Software, die lief bisher an jedem LCD und jedem µC (und 
ich habe schon viele LCDs angesteuert!). Ich werte allerdings auch das 
Busy aus. Und die Software hält sich exakt an die Init aus dem 44780 
Datenblatt mit etwas großzügigeren Timingwerten.
Klar, es gibt einige LCD Controller die haben zusätzliche Einstellungen, 
die es beim orginalen 44780 nicht gibt, aber die sind dann auch nicht 
44780 kompatibel.

Autor: Kachel-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erinnert mich irgendwie an die Anfangszeit mit PC. Da wollte mir ein 
Gymnasiast einige Disketten mit gesammelten config.sys und autoexec.bat 
andrehen, die man bei DOS-Problemen einfach alle durchprobieren kann. 
Ich zog es vor, mir meine Konfigurationsdateien selbst zu schreiben...

Eine Sammlung mit LCD-Routinen macht m.E. keinen Sinn.

Eine Auflistung aller "Kompatibler" mit Angabe der Unterschiede zum 
Original halte ich für eine sehr gute Idee. Leider verfüge ich über zu 
wenig Typen, um an dieser Liste mitzuarbeiten.

Vielleicht sollte aber auch etwas auf unterschiedliche Konzepte 
eingegangen werden.

So kann man das LCD direkt ansprechen, was recht viel Rechenzeit durch 
Busywait oder Warteschleifen vertrödelt, bei einfachen Sachen aber oft 
anzutreffen ist.

Man kann aber auch einen Bildschirmspeicher im AVR-SRAM einrichten und 
diesen im Hintergrund (Task) an das LCD senden, wobei der AVR in den 
Wartepausen andere Jobs (Tasks) der Mainloop erledigt. Hier können auch 
gleich die verschachtelten Zeilenadressen entwirrt werden, wodurch der 
Bildschirmspeicher mit Fließtext beschrieben werden kann, der auch 
einige Steuerzeichen (CRLF, Home, Clear, Blink-aus, Blink-Start, 
Blink-End, Locate) enthalten kann.

Letztens reichte dazu der RAM nicht (UART-Terminal mit Tiny2313. LCD 
4x40, 4 Tasten, Anzeige von Menü und Parameterliste mit 20 dreistelligen 
Parametern, dient zum Parametrieren anderer Geräte mit Tiny2313), da 
wurde die LCD-Ausgabe in die Mainloop gelegt, per Merker vom Timer 
synchronisiert, und die Mainloop-Jobs (Tastenentprellung, Menüführung, 
Blinkposition, UART-Handling) während der Wartepause auf den nächsten 
Synchron-Merker aufgerufen. Geht auch gut und spart Ressourcen.

Welche Methode die richtige ist, ist vom Einzelfall abhängig, erfordert 
also schon vom Programmierer, dass er weiß was er tut, und nicht nur 
(unverstandene) Codestücke aus dem Wiki zusammenkopieren kann.

KH

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut das blinde rein kopieren bringt nichts, das gebe ich zu. Uach habe 
ich nicht das deshalb angefangen, damit alles durchprobiert werden soll, 
aber man kann doch seine LCD-Codes gesammelt veröffentlichen, dann 
können andere diesen Code kopieren und müssen ihn nicht gleich neu 
schreiben.

Das mit den Unterschiedlichen Konzepten ist auch klar, aber vielleicht 
finden sich Leute die jetzt z.B. die von dir genanten Routinen schon 
geschrieben haben, also in die Sammlung gepackt und jeder kanns ändern, 
verbessern etc.


Anmerkung zur Kompatibilität: Es ist definitiv so das sich der HD44780 
und der KS00700 in der selben Schaltung mit dem selben Programm anders 
verhalten, der HD44780 funktioniert ohne Problem, während der KS gar 
nicht geht, erst wenn die Init verändert wird, das ist nicht nur bei mir 
so ( gucken machen in Forum )

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lightninglord wrote:

> Anmerkung zur Kompatibilität: Es ist definitiv so das sich der HD44780
> und der KS00700 in der selben Schaltung mit dem selben Programm anders
> verhalten, der HD44780 funktioniert ohne Problem, während der KS gar
> nicht geht, erst wenn die Init verändert wird, das ist nicht nur bei mir
> so ( gucken machen in Forum )

OK, den KS0070 habe ich bisher noch nicht probiert. Aber KS0066, 
S6A0069, SPLC780 und HD44780 laufen definitiv mit der selben, 
unveränderten Software im 4 und 8bit Modus. Ich muss nochmal suchen ob 
ich irgendwo auch ein KS0070 LCD rumliegen habe. Ich behaupte immer 
noch, dass es an einer schlechten Software liegt.
Siehe dazu auch das hier:
http://www.data-modul.com/de/support/faq/displayte...

Ich habe das selbst auch schonmal mitbekommen, wie ein großer, bekannter 
deutscher Hersteller plötzlich Probleme bekam, als Hitachi den HD44780 
einstellte, und danach irgendein Samsung Controller auf dem LCD war. 
Dies lag ganz einfach daran, dass sich der Hersteller auf die typischen 
Timingwerte aus dem Datenblatt verlassen hat, die Hitachi 
erstaunlicherweise auch gut eingehalten hat, während Samsung zum 
Beispiel den zulässigen Toleranzbereich doch etwas weiter ausnutzt.
Und dabei ging es um etliche 1000 LCDs pro Jahr!

Ich möchte hier jetzt auch nicht rumnerven, sondern verhindern dass der 
Artikel ein reines Chaos wird, wenn hier dutzende Verschiedener 
Versionen in dem Artikel auftauchen, die alle irgendwie so hingepfuscht 
sind, dass sie gerade so mit dem entsprechenden Controller laufen.
Bisher sind da nämlich schon Fehler in dem Artikel: Die 164 und 204 
(vielleicht sollte man hier auch noch den Hersteller dazuschreiben, denn 
viele nennen ihr Displays so), haben nur einen KS0070.

Weiterhin sollte man vielleicht die Software auch möglichst einfach 
halten (also keine extra aufwendigen Tricks einbauen die keiner kapiert 
und die erstmal aufwendig an den AVR angepasst werden muss), sondern 
wirklich nur die grundlegenden Routinen (vielleicht inkl einer kleinen 
Ansteuerung die sowas wie "123 LCD Test" anzeigt) reinstellen.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
Laut diesem Datenblatt habe ich doch LCDs mit KS0070 Controller. Und die 
laufen auch mit ein und der selben Software wie alle anderen, ohne 
veränderte Init...
http://www.pollin.de/shop/downloads/D120545D.PDF

Autor: Kachel-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> aber vielleicht
> finden sich Leute die jetzt z.B. die von dir genanten Routinen schon
> geschrieben haben,

Das ist ja eben der Haken...
Wenn diese Routinen in gesammelter Form zum Herunterladen zur Verfügung 
stehen, dann wird sich kaum ein Anfänger die Mühe machen, selbst über 
die LCD-Ansteuerung nachzudenken. Er wird die Routinen ausprobieren, sie 
werden nicht zufriedenstellend laufen, weil er die Konventionen betreffs 
Hauptprogramm (Aufruf der Routinen) mangels eigenen Denkens nicht 
einhält und wird frustriert sein, weil der schnelle Erfolg ausbleibt.

Ja, ich habe bereits verschiedene Konzepte mit LCDs realisiert, habe sie 
aber an zuwenig verschiedenen LCDs (unterschiedlicher Herkunft) testen 
können um sie mit reinem Gewissen im Netz veröffentlichen zu können. 
Denn Unfug ist schon mehr als genug im Netz veröffentlicht.
Ich strebe auch nicht danach, die ultimativen LCD-Routinen zu schreiben, 
mir reicht es, wenn die LCDs an meinen AVRs einfach nur zuverlässig 
ihren Dienst tun. Und dies wird je nach Konzept auf unterschiedliche Art 
und Weise erreicht.

KH

Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal meine Software an verschiedensten LCDs ausprobiert. Dabei 
waren HD44780 in verschiedensten Varianten (orginal Hitachi, Motorola), 
KS0066, T7934, LC7985, S6A0069, irgendein Philips Controller und ein 
KS0070 (wenn man dem Pollin Datenblatt glauben kann) und noch einige 
weitere von denen ich gar nicht weiß, was für ein Controller da drauf 
ist.
Ansteuerung im 4bit Modus, einmal mit und einmal ohne RW Pin, mega8 auf 
18MHz übertaktet und etwa 50cm lange Kabel um ganz sicher zu gehen, dass 
bei etwas knappen Timing Probleme auftreten.
Das Ergebnis war wie erwartet: Alle LCDs laufen ohne Probleme an ein und 
der selben Software!

Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und hier die Software dazu.

@ Alle die Probleme mit der normalen HD44780 Software haben:

Probiert diese Software mal bitte aus. Ich behaupte diese läuft mit 
allen LCDs die sich HD44780 kompatibel nennen, egal welcher Controller 
da letztendlich drauf ist.

PS: Wer meint die Wartezeiten wären etwas lang, dem stimme ich zu, 
allerdings müssen diese so lang sein, damit das ganze zuverlässig 
funktioniert. Alles andere ist Pfusch!
Die üblichen Wartezeiten gelten nämlich für 270kHz Taktfrequenz. Einige 
Datenblätter geben die Taktfrequenzen an, ich habe da z.B. schon Werte 
wie 120kHz gefunden. Das ist nicht mal die Hälfte der 270kHz, 
dementsprechend werden die Zeiten mehr als doppelt so groß! Dazu kommt 
noch, dass selbst beim originalen HD44780 die Oszillatorfrequenz mit 
+/-30% spezifiziert ist, und das bei 5V +/-10% ! Bei 3,3V ist das ganze 
nochmal ein ganzes Stück langsamer...

Wenn die Rückmeldungen alle positiv sind, werde ich die Software dann in 
die oben genannte Codesammlung stellen.

Autor: Kachel-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe mir nun mal die vom Licht-Lord veröffentlichten Routinen 
angesehen und fühle mich in meinen Befürchtungen bestätigt. Denn das 
Nonplusultra ist das nicht gerade. Für den Hausgebrauch ist es ja gut 
und schön, auch als Antwort auf eine Forumfrage ist es akzeptabel, aber 
als Vorzeigebeispiel finde ich es nicht so doll.

Hier einige Punkte, die mir aufgefallen sind:

Du legst die unbenutzten Datenleitungen an GND, teils sogar über 
Widerstände. Hast Du mal darüber nachgedacht, dass viele LCDs ihre 
Datenleitungen per PullUp nach Vcc ziehen? Zu erzeugst damit unnötigen 
Stromverbrauch, mit Widerständen sogar undefinierte Pegel 
(Spannungsteiler). Und ja, es gibt glaube LCDs, bei denen die 
unbenutzten Datenleitungen auf L müssen, aber bei den meisten ist das 
nicht der Fall.

Vor der Initialisierung wird gerade mal 50ms (10 * 5ms) gewartet. Das 
ist für viele LCDs zu kurz. Da die Init nur einmal aufgerufen wird, 
kommt es auf ein paar hundert Millisekunden nicht an.

Nippel findet man an Maschinen (Schmiernippel), vielleicht auch an 
Mädels, ein halbes Byte ist aber ein Nibble. Klar, nur ein Fehler zum 
Schmunzeln, aber in einer ernstzunehmenden Cod(e)sammlung schon etwas 
peinlich.

Das Macro LCDPos finde ich nicht gerade anwenderfreundlich. Das kann man 
auch anders machen. Z.B. so ähnlich wie hier:
.macro locate ;Zeile (0,1), Spalte (0...39) ;Positionierung der Ausgabeposition
 push wl                    ;Register sichern
 ldi wl,128+((@0 & 1)<<6)+(@1 & 63) ;Zeile in Bit 6, Spalte in den Rest
 rcall lcd_command          ;an LCD als Befehl ausgeben
 pop wl                     ;Register wiederherstellen
.endmacro
Es funktioniert bei 16x2, 20x2, 24x2 und 40x2.

Auch die Routine(n) zur Ausgabe von Strings aus dem Flash finde ich 
etwas umständlich. Zumindest, wenn man es schon mal anders gesehen hat:
.macro printf ;Startadresse des Strings im Flash (als Label angegeben)
              ;Gibt einen String aus dem Flash an LCD aus
              ;Der Parameter beschreibt die Startadresse, 
              ;das Ende ist $00
 push zh                    ;verwendete Register
 push zl                    ;sichern
 ldi zh,high(2*@0)          ;Pointer
 ldi zl,low(2*@0)           ;setzen
 rcall lcd_printf           ;Aufruf...
 pop zl                     ;verwendete Register
 pop zh                     ;wiederherstellen
.endmacro

lcd_printf:   ;Wird vom Makro aufgerufen. Gibt Flash-String an LCD aus.
 push wl                    ;Variable beschaffen
 lpm wl,z+                  ;Zeichen holen
 tst wl                     ;Ende-Kennung? 
 breq pc+3                  ;ja...
 rcall lcd_data             ;nein, ausgeben
 rjmp pc-4                  ;nochmal
 pop wl                     ;Variable entsorgen
 ret                        ;fertig, zurück...

Der Aufruf erfolgt dann einfach durch:
 locate 0,0                 ;Zeile 0, Spalte 0
 printf hallo               ;String am Label "hallo:" ausgeben

und irgendwo im Programm steht dann:
hallo:  .db "Hallo Welt...",0


Wie soll man das eigentlich deuten?
;---[ 190�S warten ]----------------------------------------------------------------

waitus50:                      ; Genau 100�S warten

           ldi  r17, $FC
 WGLP3:    dec  r17
           brne WGLP3
           nop

ret
Beim Aufruf steht allerdings 50 Mikrosekunden. Sind es nun 50, genau 100 
oder gar 190 Mikrosekunden? Nunja, für den Hausgebrauch ist das ok, auch 
einige meiner Programme haben solche Stilblüten. Aber vor einer 
Veröffentlichung in einer ultimativen LCD-Codesammlung sollte man sowas 
schon etwas bereinigen.

Das waren die Dinge, die mir beim flüchtigen Drüberschaun so ins Auge 
gesprungen sind. Nach mehr will ich nicht suchen, dazu fehlt mir Zeit 
und Lust.

KH

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja ohne mich rausreden zu wollen:

Bei denen war mir die Funktion erstmal wichtig, außerdem hab ich sie zu 
einer Zeit geschrieben wo ich eher wenig Erfahrung mit ASM hatte, bin 
aber auf C umgestiegen, weil deutlich freundlicher zum Programmieren.

Das mit den Widerständen gegen GND, bei LCD-Modulen mit HDD4780 bzw 
kompatiblen habe ich aus einem Hobbyelektroniker Magazind desse Elektor 
äh Namen ich nicht nennen möchte.

Danke für die Hinweise werde das verbessern ( heute aber ned mehr ).

Grüßle

Autor: Kachel-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@lightninglord (Gast)

Da C nicht mein Ding ist, kann ich Benedikts Code nicht beurteilen. Ich 
weiß aber ziemlich sicher, dass Benedikt kein halbseidenes Zeugs 
veröffentlicht.

Ehe Du Deine bereits veröffentlichten Codes überstürzt überarbeitest, 
solltest Du Benedikts Code mal genauer analysieren. Vielleicht findest 
Du ja die Stellen, an denen verschiedene LCDs schlapp machen und kannst 
den ASM-Code so überarbeiten, dass er auch mit (fast) allen LCDs 
funktioniert. Damit wäre Allen mehr geholfen als mit vielen 
individuellen Versionen, deren einziger Unterschied in der 
Dimensionierung der Warteschleife zu sein scheint. Achja, Warteschleifen 
kann man auch so codieren, dass der Präprozessor die Startwerte der 
Schleifenzähler anhand der Taktfrequenz berechnet. Das erübrigt 
Anpassungen bei anderen Taktfrequenzen. Dabei lieber ein Register mehr 
benutzen, damit auch bei übertaktetem AVR alle Bits in den Zähler 
passsen. Statt eines NOP kann man auch ein RCALL auf das RET der Routine 
schreiben, das bringt statt eines Taktes gleich mal 7 Takte (RCALL + 
RET). Mit ober(st)en Registerpaaren und SBIW gibt es auch einen 
praktischen (übersichtlichen) 16-Bit-Schleifenzähler.

KH

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade mal den Code von lightninglord mit meinem verglichen:
Vom Timing her sind beide identisch, nur die Init sieht anderst aus (von 
den Werten her), aber weder mein noch der Code von lightninglord 
entspricht der Init des KS0070 aus dem Datenblatt.
Welches jetzt von beiden jetzt für den KS0070 richtiger ist, kann man 
nicht beurteilen, meine ist streng nach HD44780 Datenblatt und müsste 
somit kompatibel zu allem sein, was sich HD44780 kompatibel nennt.
Aber da ich den Pollin Datenblättern nicht vertraue kann ich nicht 
sicher sein, ob mein Code definitiv mit dem KS0070 läuft.

Daher die Frage: Hat jemand mal meinen Code auf einem KS0070 Display 
ausprobiert?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, Benedikt, da ist (k)ein reger Andrang. :(

43 Downloads der Fotos, aber nur 10 Downloads Deiner Software, wovon 
einer ich war, obwohl ich von C nix verstehe, aber man schaut ja auch 
mal über den Tellerrand.

Das Problem "LCD geht nicht" scheint also doch nicht sooo groß zu sein 
wie hier vermutet wird. Ansonsten wäre da mehr Interesse.

Übrigens:
Danke auch nochmal für Deinen Textgenerator (Mega8, TV, 25 Zeilen a 40 
Zeichen), der eine prima Vorlage für mein OSD-Projekt (10 Zeilen je 32 
Zeichen) mit Mega8 war. Das hätte ich mir ohne Deine Vorlage nie 
zugetraut.

Bit & Bytebruch,
Hannes
(oder einfach nur "...")

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes Lux wrote:

> 43 Downloads der Fotos, aber nur 10 Downloads Deiner Software, wovon

Die Downloadzahlen bei Anhängen kamen mir immer schon komisch vor. 
Bisher habe ich mir das so erklärt, dass wählerische Spider/Bots viele 
Downloads machen. Bilder und PDFs schmecken denen anscheinend, Archive 
eher weniger.

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.