Guten Abend!
Ich versuche gerade das Datenblatt vom HD44780 LCD-Controller zu
verstehen. Dort ist eine Initialisierung im 4-bit Modus gezeigt. Zu
Anfang wird dort dreimal hintereinander 0x30 (also Function Set -->
8-bit mode) an den Controller gesendet aber nirgends wird erklärt warum
das sein muss. Ich erinnere mich daran, dass ich irgendwo gelesen habe,
dass dies deshalb gemacht wird, damit der Controller aus jedem Modus
heraus (8 oder 4 bit) sicher erstmal in den 8 bit modus versetzt wird,
aber ich verstehe immer noch nicht ganz warum 0x30 dreimal gesendet
werden muss und den Beitrag finde ich nicht mehr. Kann mir das jemand
evtl nochmal erklären? Danke!
>Kann mir das jemandv evtl nochmal erklären? Danke!
Nein. Mach es und denk nicht weiter drüber nach.
Selbst wenn du weisst warum nützt es dir nichts.
Du kannst es nicht anders machen. Wenn du es versuchst
klappt es nicht. Also frag nicht weiter sondern TU ES.
Ende der Durchsage.
Studi schrieb:> Zu Anfang wird dort dreimal hintereinander 0x30
Damit der Controller, egal in welchem Zustand er vorher war, in den
4-bit Modus schaltet.
Hallo,
3x 0x30 mit den im Datenblatt angegebenen Timings erzwingen einen Reset
des Displaycontrollers.
Das funktioniert sowohl aus dem 4-Bit-Mode als auch aus dem 8-Bit-Mode.
Wichtig ist hierbei, daß jeweils nur ein E-Takt erzeugt wird, also so,
als ob man das Display im 8-bit-Mode anspricht. Auch, wenn eben nur der
4-Bit-Mode beschaltet ist.
Gruß aus Berlin
Michael
Das sind ja geile Antworten hier ... tsss ...
Der Sinn ist eigentlich ganz einfach: Unter Umständen befindet sich das
Display zum Reset-Zeitpunkt in irgendeinem Modus. Im blödesten Fall im
4-Bit-Modus und wartet auf das zweite Nibble.
Wenn das Display von Anfang an im 8-Bit-Mode ist, greift gleich das
erste Kommando. Die beiden Nächsten wiederholen das nur.
Wenn das Display im 4-Bit-Mode ist, benötigt es 2 Nibbles. Also die
ersten beiden Kommandos, die im Display ein Kommando darstellen. Dann
schaltet das Display auf 8-Bit um und das dritte Kommando wiederholt
dies nur.
Wenn das Display im 4-Bit-Mode ist und der Controller gerade zwischen
zwei Nibbles zurückgesetzt wurde, wartet das Display noch auf ein halbes
Byte.
In diesem geht das erste Kommando unter. Aber die beiden nächsten
schaffen es dann, das Display in den 8-Bit-Mode zu versetzen.
Da zur Konfiguration zwischen 8 und 4-Bit nur die oberen 4 Bit benötigt
werden, funktioniert dies für beide Modi.
Gruß
Jobst
>Das sind ja geile Antworten hier ... tsss ...
Und was bringt ihm deine Antwort?
Gar nichts. Er muss die Sequenz senden.
Warum er das muss ist total egal.
Verschwendete Zeit von dir für die Antwort.
Wenn ich einen I2C Baustein ansprechen möchte
dann frage ich auch nicht warum ich die Adresse
senden muss. Ohne gehts halt nicht.
Wenn ich eine SD Karte beschreiben will dann muss
ich eine bestimmte Kommandofolge senden. Da frage ich
nicht lange warum ich das muss. Wenn ich es nicht tue
dann funktioniert es nicht.
Die Frage ist flüssiger als Wasser: Überflüssig.
Danke Jobst, prima Erklärung, das leuchtet ein. Ich ärger mich echt über
die Reaktionem einiger Mitschreiber, die das Hinterfragen nicht ertragen
können bzw. es selbst nie verstanden haben... Naja, gute Nacht.
Auch ich danke für die prima Erklärung! Schön, daß sich noch jemand die
Mühe macht, was zu erklären. Wenn ich sehe, wieviel Worte und Zeit der
Nörgler verschwendet hat, hätte er es auch erklären können. Wenn er es
denn gewußt hätte.
Wie der Threadersteller weiß ich auch gern was, warum passiert. Wenns
Dich nicht interessiert, warum du beim Auto die Kupplung tretten mußt,
dann TU ES einfach und halt dich hier doch einfach zurück.
Mein Gott, warum immer diese sinnlosen Antworten.
Weil die Frage sinnlos ist?
Man kann viel verstehen wollen, nicht immer ist eine akzebtable Antwort
auch die richtige...
Manche Sachen muss man nicht verstehen, da sie so oder so eben so sind
und man sich dran halten sollte.
holger schrieb:> Und was bringt ihm deine Antwort?> Gar nichts. Er muss die Sequenz senden.> Warum er das muss ist total egal.> Verschwendete Zeit von dir für die Antwort.
Das sehe ich anders. Es gibt Leute, die aus Interesse Fragen stellen und
Begreifen wollen was passiert, um dann mit Ehrgeiz ihre Projekte
anzugehen. Diese Leute wissen meist genau, was in ihren Geräten abläuft
und haben Interesse daran, daß es reibungslos läuft.
Und dann gibt es die Leute, die sich nicht für die Hintergründe
interessieren und völlig lieblos nach Schema F irgendwelche Geräte
zusammenschustern. Das Funktioniert zwar, aber die Ergebnisse
hinterlassen den Eindruck, daß sich jemand keine Gedanken gemacht hat.
Zu den Leuten gehörst Du.
Ich beantworte lieber eine doofe Frage (und dies war keine, denn es gab
ja eine Antwort darauf), als jemandem zu sagen: "mußt Du so machen, mehr
mußt Du nicht wissen". Ich habe kein Interesse daran, jemanden dumm zu
lassen. Vor allem würde ich nicht auf die idiotische Idee kommen,
jemandem, der eine Frage beantwortet auch noch blöde anzumachen -
unterste Schublade ...
Und: Die schönste Zeit ist die, die 'verschwendet' wurde ... :-)
Das ist ja auch der Grund, warum auch Du hier schreibst.
Vielleicht solltest Du Dich auch einem Forum anschliessen, wo Antworten
unerwünscht sind ...
So. Weiter füttere ich den Troll aber nun nicht mehr ...
Gruß
Jobst
ne Kunz, alles im grünen Bereich.
Umso mehr, wenn man unterscheiden kann, was wichtig, interessant oder
einfach nur nebensächlich ist. Spart Zeit und Kapazität - beides ist
begrenzt.
Wenn eine init-Folge so ist, dann ist sie so - Punkt.
Liest du ein Datenblatt über einen Mikrocontroller und stolperst
darüber, dass ein Befehl statt der erwarteten 2 Takte 3 braucht? Nein,
es ist so. Es bringt dir nichts zu verstehen, warum das so ist. Morgen
gibts die Dinger nicht mehr, dein Kampf hat dich nicht dazu gebracht,
dass der MC das in 2 Taktzyklen erledigt. Und das Wissen, dass es
vielleicht doch hätte klappen können, hilft dir nichts, das Bauteil ist
obsolet.
Klopf dir auf die Schulter oder Brust oder sonstwohin, je nach
persönlichen Vorlieben - gewonnen hast du nichts. Sinnloses
Detailwissen, zu nichts Nutze. Sowas nenn ich nicht interessiert,
sondern verschwenderisch.
@H.joachim Seifert (crazyhorse)
> Klopf dir auf die Schulter oder Brust oder sonstwohin, je nach> persönlichen Vorlieben - gewonnen hast du nichts. Sinnloses> Detailwissen, zu nichts Nutze. Sowas nenn ich nicht interessiert,> sondern verschwenderisch.
Dieses "sinnlose" Detailwissen macht den Unterschied aus zwischen
jemandem der den Kram nur fluchend in die Ecke schmeißen kann wenn er
nicht funktioniert oder jemandem der sich die Sache anschaut, kurz aha
sagt, eine kleine Änderung vornimmt und schon geht es.
@Heinz
> Na, wenn die eigenen Kapazitäten so begrenzt sind muss man halt sparen,> stimmt schon.
Du bist ein wirklich sehr gutes Beispiel dafür. ^^
Wenigstens isser kreativ im Ausreden erfinden.
Statt "hab ich noch nie kapiert" ein schlichtes "das muss man nicht
wissen".
Klar, reicht ja wenn man's vom Chinese kaufen kann.
Armes Land der Dichter und Denker ...
Dieses Rumgemotze geht mir auch auf den Keks. Wer es selber nicht weiß,
soll doch einfach mal die Klappe halten.
Es ist immer gut, zu verstehen, was man gerade macht. Umso besser lassen
sich Fehler finden oder vermeiden.
Jobst hat das schon richtig erklärt.
Der Worst-Case ist, das LCD wartet auf das 2. Nibble und z.B. der
Watchdog schlägt zu. Also muß man ein Nibble senden, um den Befehl zu
beenden. Und dann eben den Befehl für den 8Bit-Mode, der wiederum aus 2
Nibble besteht (man ist ja immer noch im 4Bit-Mode). Und das macht nach
Adam Ries eben 3 Nibble mit 0x3.
Peter
Kleine Kinder fragen immer: Papi warum ist das so oder so ?
Grosse Kinder muessen wissen wo und wen sie fragen !
Studi hat simply am falschen Ort gefragt .
Frag mich nicht warum !
Danke für die Antworten Jobst, das hat mich auch schon lange
interessiert.
Das war eine gute und Berechtigte Frage würde ich sagen.
Die Diskussion hier ist sehr witzig :) Wie kann man die Dreistheit
besitzen und auf eine Frage mit "Das musst du nicht wissen" antworten.
H.joachim Seifert hätte im Beitrag #2584112 auch schreiben können:
> Wenn Venus eine andere Bahn zieht als die anderen Sterne,> dann ist sie so - Punkt.> ...
;-)
P.S. Ich habe mir auch schon die Frage des TE gestellt, und danke Jobst
für die Antwort. :)
Na gut :-)
Manche Sachen möchte ich wissen, andere eben nicht.
Warum 3 x 0x30 möchte ich nicht wissen, da es mir reinweg gar nichts
nützt zu wissen, warum das so ist. Nicht im Moment und auch nicht
später.
Hallo zusammen!
Ich hätte nie gedacht dass sich der Thread zu so einer hitzigen
Grundsatzdiskussion entwickelt..
Also zu meiner Rechtfertigung möchte ich sagen dass mir schon klar ist
dass man die Sequenz nicht weglassen kann, das wollte ich auch nicht in
Frage stellen. Und wenn im Datenblatt steht wirds schon seine
Richtigkeit haben (Wobei das auch nicht immer stimmt!!!).
Mir gings nur darum das ich definitiv in Erinnerung hatte dass es für
die Sequenz eine praktische Erklärung gab und ich die nicht mehr
gefunden habe.
Grundsätzlich möchte ich sagen dass ich Dinge halt nun mal gerne
verstehe wenn ich sie anwende - das ist auch ungemein praktisch wenn mal
Fehlersuche ansteht. Mag aber auch daran liegen dass ich
Naturwissenschaftler bin.
Viele Dank jedenfalls an Jobst für die tolle Erklärung!
Danke auch von mir für die Erklärung, eigentlich ganz logisch, wenn mans
einmal weiss...
Btw: Die Venus ist kein Stern, sondern ein Planet, auch wenn sie
mitunter als Abendstern und mitunter als Morgenstern bezeichnet wird.
@H.joachim Seifert:
"Manche Sachen möchte ich wissen, andere eben nicht."
Es tut mir Leid Dir das sagen zu müssen, aber die Welt dreht sich nicht
um Dich!
Andere wollen es halt wissen und wieder andere geben auch gerne eine
vernünftige Antwort darauf.
Wenn Du so auf Effektivität stehst, dann solltest Du die Effektivität
von solchen Threads respektieren und nicht durch Deine unqualifizierten
Äußerungen den netto-Informationsgehalt eines Threads dermaßen in den
Keller ziehen - was ja dann nebenbei bemerkt auch deine ach so wertvolle
Zeit kostet!
Mit anderen Worten: Wenns dich nicht interessiert einfach Thread
schließen! Das nennt sich dann eine Win-Win-Situation - 1. Du
verschwendes keine Zeit mit Antworten 2. die hier sowieso kein Mensch
braucht.
@Jobs: well done!
Hallo,
meine Datenblätter des HD44780 sagen in einer Anmerkung zum 4-Bit-Mode,
daß ein zurückschalten in den 8-Bit-Mode nur durch einen Reset des
Controllers möglich ist (siehe auch meinen Kommentar von 07.03.2012
20:37.
Es gibt kein Kommando, das aus dem 4-Bit-Mode wieder in den 8-Bit-Mode
umschaltet!
Gruß aus Berlin
Michael
> Btw: Die Venus ist kein Stern, sondern ein Planet, auch wenn sie> mitunter als Abendstern und mitunter als Morgenstern bezeichnet wird.
und ich habe erst vor kurzem gelesen, dass es Planeten gibt, die keinen
Stern haben (wie auch immer das funktionieren mag, die vagabundieren
wohl so ohne Plan durchs All ... ?)
OT:
die ganzen leute, die hier meinen, dass er mit der Information nichts
anfangen kann, müssen alles Studenten der theoretischen Informatik sein.
"Es funktioniert so und das reicht mir"
Keinerlei Praxiserfahrung, alles nur theoretisches Denken.
Wenn ihr nix zur Frage zu sagen habt, dann lasst es sein.
Wie einer von euch sagte: Ist verschwendete Zeit und ändert eh nichts.
Wenn andere Leute lernen wollen, dann lasst sie lernen.
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