Hallo!
kann mir jemanden vielleicht erklären wie man beim KS0073 Controller den
RE Bit verstehen muss? Ich kann das Display initialisieren,
addressieren und mit Text versehen oder nicht.
Ich schicke alle Commands folgendermassen rein:
RS, RW und RE sind 3 pins vom uC.
1
voidwrite_cmd(unsignedcharc)
2
{
3
DATA=c;
4
RS=0;
5
RW=0;
6
DelayPORXLCD();
7
RE=1;// Clock the command in
8
DelayPORXLCD();
9
RE=0;
10
DelayPORXLCD();
11
12
return;
13
}
dann kommt:
write_cmd(0b000011101); //je nach dem was ich will
So kenne ich es von dem HD controller:
Der RE-Bit ist der Bit der zum Reinschieben der Befehle benutzt wird.
Jetzt: Im Datenblatt ist eine "Instructions Set" Tabelle wo die
beliebiege Einstellungen beschrieben werden. Was dort RE=1 oder RE=0
bedeutet ist mir rätselhaft. Ich dachte am Anfgan das hätte was mit dem
Flankenwechsel beim Clocken zu tun... es passiert aber nichts wenn ich
meine Befehle mit aufsteigender Flanke zum display reinschiebe.
Vielen Dank im Voraus,
Juan
ergänzung:
Ich kann dann die Hälfte der Einstellungen nicht machen, weil ich nix
mit den RE = 1 - Befehle anfangen kann.
Das ist mein Hauptproblem.
:)
danke,
Juan
Ich verstehe jetzt nicht ganz, was da unklar ist, aber das Enable (das
hier offensichtlich RE heißt, bei HD44780 heißt es einfach E) wird
gesetzt, wenn die Daten an den Eingängen anliegen und muss dann für eine
kurze Zeit (minimale Enable-Pulsbreite) auf High bleiben und wird dann
wieder zurückgesetzt.
RE = Enable beim KS0073.
Die Daten/Befehle die am Port DATA liegen, werden erst beim
Flankenwechsel vom 0 auf 1 in den Controller geschoben. Oder verstehe
ich das falsch?
Daher weiss ich nicht was die Info ENABLE = 0 oder ENABLE = 1 im
Instruction Set bedeutet.
gruß,
J
Juan (wieder ich) wrote:
> RE = Enable beim KS0073.>> Die Daten/Befehle die am Port DATA liegen, werden erst beim> Flankenwechsel vom 0 auf 1 in den Controller geschoben. Oder verstehe> ich das falsch?
Das verstehst Du im Prinzip richtig. Die Daten müssen aber schon am Port
anliegen, wenn RE auf High geht. Und RE muss für eine gewisse Zeit High
bleiben.
Hi
Ich glaube du bringst da etwas durcheinander. Es gibt das Pin E (nicht
RE)
und es gibt das Bit RE (Extended function registers enable bit).
E hat die gleiche Funktion, wie bei anderen Text-LCDs. RE ermöglicht den
Zugriff auf den erweiterten Registersatz.
MfG Spess
Hallo Johannes,
Das heisst,
wenn ich meine Funktion so schreibe:
1
voidwrite_cmd_re1(unsignedcharc)
2
{
3
DATA=c;
4
RS=0;
5
RW=0;
6
DelayPORXLCD();
7
RE=0;// Clock the command in
8
DelayPORXLCD();
9
RE=1;
10
DelayPORXLCD();
11
12
13
return;
14
}
sollte es funktionieren?
Da liegt mein Befehl schon am Port bevor ich von 0 auf 1 mit RE gehe.
(Natürlich mit den entsprechenden Delays für die Zeiteinhaltung)
gruß,
holger wrote:
> RE ist kein Pin am Display, sondern ein Bit das man> mit dem Function Set Befehl setzen oder löschen kann.
Das sehe ich jetzt auch... Hab grad mal das Datenblatt durchgeblättert.
Jetzt:
wie spreche ich mein RE bit an? Irgendwo muss es definiert werden.
Wenn es kein PIN am Display oder uC ist, dann was ist es? (RW und RS
sind auch pins am uC)
gruß,
Juan
RE Bit ist ein Bit der "Function Set". Dein Bsp. kann so nicht
funktionieren, um aber dabei zu bleiben musst Du bei DATA = c; bereits
das RE-Bit in die c-Variable integriert haben. (vor der Ausgabe!)
Durch das RE-Bit werden mehr Funktionen, die der KS0073 hat, erst
möglich.
Anlage Datenblatt, das solltest Du erst mal lesen...
Matthias,
Das Datenblatt habe ich gelesen. Ich glaube, RE mit einem Pin des
Displays zu verwechseln ist nicht schwer wenn der direkt neben den
anderen 2 wichtige pins des displays steht. RE und E für enable können
auch verwechselt werden. Daher mein thread.
"Datenblatt, das solltest Du erst mal lesen..." hättest du dir sparen
können.
Jetzt an den Rest:
vielen Dank,
wie kann ich jetzt meine Wörter Blinken lassen.
ich habe mein RE bit im Function Set enablet, dann mit RE = 1 habe ich
im function set BE = 1 gesetzt. Die Data die danach zum display schicke
blinkt aber nicht.
Geht das so?
gruß.
Juan
Hi
@ Matthias: Es geht um TEXT Blinken, nicht um CURSOR Blinken
>Ich glaube, RE mit einem Pin des Displays zu verwechseln ist nicht schwer >wenn
der direkt neben den...
Doch, wenn man weiß, das RW von Read/Write und RS von Register Select
kommt und die Funktion kennt.
>ich habe mein RE bit im Function Set enablet, dann mit RE = 1 habe ich>im function set BE = 1 gesetzt.
???????. Kann es sein, das du etwas chaotisch veranlagt bist?
MfG Spess
Ne... ich bin eigentlich ganz ordentlich.
Bin ein bisschen im stress nur...
Ich mache den text über eine clear-and-write Schleife mit einfachen
Delays blinken. Ich weiss man kann einzelne ASCII Chars entweder
blinkend oder fest darstellen... ich weiss aber nicht ob das mit ganzen
Strings, über einen einfachen Displaybefehl geht.
gruß,
Juan