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!
Studi schrieb: > ich verstehe immer noch nicht ganz warum 0x30 dreimal gesendet > werden muss Weil es der Hersteller SO vorschreibt PUNKT!
>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.
Na, wenn die eigenen Kapazitäten so begrenzt sind muss man halt sparen, stimmt schon.
@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.
Hm... wieso brauchen manche Leute dreimal eins in die Fresse und kapieren's nicht schon beim ersten Mal? ;)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.