Forum: Mikrocontroller und Digitale Elektronik KS0108 library und Timing diagram


von Richard X. (synq1e)


Angehängte Dateien:

Lesenswert?

da mein display mit der KS0108 library ansteuern geht frage ich mich
warum die enable funktion so geschrieben worden ist dass zuerst E auf 1
dann gewartet wird und dann E auf 0

im timing diagram vom KS0108 auf seite 15 geht die flanke doch zuerst 
runter
und dann rauf. wie soll ich das verstehen `??

1
inline void ks0108Enable(void) {
2
volatile uint8_t i;
3
LCD_CMD_PORT |= 0x01 << EN;  // EN high level width: min. 450ns
4
asm volatile("nop\n\t"
5
"nop\n\t"
6
"nop\n\t"
7
::);
8
LCD_CMD_PORT &= ~(0x01 << EN);
9
for(i=0; i<8; i++);                // a little delay loop (faster than reading the busy flag)
10
}

von Karl H. (kbuchegg)


Lesenswert?

chris __ schrieb:

> im timing diagram vom KS0108 auf seite 15 geht die flanke doch zuerst
> runter
> und dann rauf. wie soll ich das verstehen `??

Indem du in der Pin-Beschreibung nachsiehst. Da steht eindeutig, dass 
beim Schreiben in das LCD die Daten mit der fallenden Flanke des 
E-Signals übernommen werden.

Der Autor deines Codes hat sich eben dazu entschlossen, den Ruhepegel 
der E-Leitung (also wenn das LCD nicht angesprochen wird), mit E==0 
festzulegen.

Das Timing-Diagramm gibt dir darüber Auskunft welche Zeiten mindestens 
einzuhalten sind. D.h. zb, dass du nach einer fallenden Flanke eine 
gewissen Mindestzeit einzuhalten hast. Und irgendwie müssen die das auch 
so aufzeichnen, dass man das in einem Diagramm auch sehen kann, bzw. 
Pfeile einzeichnen kann.

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.