KS0108 library und Timing diagram

OP #3145878
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
}
Angehängte Dateien:
#3145933
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren