H
Heiko Nocon
Guest
Dirk Ruth wrote:
Schreibt man was zum Display, schaut die Schreibroutine, ob der Timer
schon läuft. Wenn nein, wird direkt zum Display geschrieben und der
Timer mit dem zu erwartenden Delay gestartet. Wie groß das für die
jeweilige Operation ist, kann man dem Datenblatt entnehmen. (Siehe S.
24)
Wenn ja, wird das Datum nicht geschrieben, sondern statt dessen einfach
in einem FIFO-Puffer abgelegt.
In der Interruptoutine wird nun geguckt, ob noch was im FIFO steht. Wenn
ja, dann wird (nur zur Sicherheit) einmal das Busyflag gelesen, das
nächste Datum aus dem FIFO geschrieben und der Timer mit dem neuen Delay
erneut gestartet. Das gute alte buffered IO Prinzip, nur leicht
abgewandelt, eben entsprechend den Eigenschaften der konkreten Hardware.
Normalerweise wird man nicht einen Extra-Timer dafür verheizen, da meist
sowieso schon einer für irgendwelche Zwecke läuft. In dessen
Interruptroutine wird der zusätzliche Handler einfach mit eingeklinkt.
Ganz einfach. Man nimmt einen Timerinterrupt zu Hilfe.So so und wie würde der "assemblerorientierte Entwickler" das
Busysignal einen Interrupt triggern lassen, wenn dazu eine komplette
Leseoperation notwendig ist (44780u)?
Schreibt man was zum Display, schaut die Schreibroutine, ob der Timer
schon läuft. Wenn nein, wird direkt zum Display geschrieben und der
Timer mit dem zu erwartenden Delay gestartet. Wie groß das für die
jeweilige Operation ist, kann man dem Datenblatt entnehmen. (Siehe S.
24)
Wenn ja, wird das Datum nicht geschrieben, sondern statt dessen einfach
in einem FIFO-Puffer abgelegt.
In der Interruptoutine wird nun geguckt, ob noch was im FIFO steht. Wenn
ja, dann wird (nur zur Sicherheit) einmal das Busyflag gelesen, das
nächste Datum aus dem FIFO geschrieben und der Timer mit dem neuen Delay
erneut gestartet. Das gute alte buffered IO Prinzip, nur leicht
abgewandelt, eben entsprechend den Eigenschaften der konkreten Hardware.
Normalerweise wird man nicht einen Extra-Timer dafür verheizen, da meist
sowieso schon einer für irgendwelche Zwecke läuft. In dessen
Interruptroutine wird der zusätzliche Handler einfach mit eingeklinkt.
Das hat er bereits vor sehr langer Zeit getan.Vielleicht sollte der "assemblerorientierte Entwickler" die Doku zum
44780u nochmal eingehender studieren