000
21.02.2016, 15:42 Uhr
mwd
|
Im Quelltext CLOCK.ASM finden sich folgende Zeilen zur Initialisierung des CTC:
LD HL,ISR LD (1DCH),HL DI LD A,0D8H OUT (0CH),A LD A,0A7H OUT (0EH),A LD A,121 OUT (0EH),A IM 2 EI
Die ersten 5 Zeilen sind klar, da wird die Interruptroutine eingetragen. Danach kommt ein Kanalsteuerwort, das den Kanal 2 (0Eh) auf Interruptbetrieb stellt und den Vorteiler auf 256 setzt und im nächsten Befehl die Zeitkonstante erwartet. Die wird dann mit 121 eingeschrieben. So weit so gut. Wieso wird nun die Interruptroutine 1x pro Sekunde aufgerufen? (Sie wird, denn das Uhrenprogramm funktioniert ja). Wenn ich den Systemtakt 1.751938 MHz durch den Vorteiler und die Zeitkonstante dividiere, komme ich auf 56,6 Hz. Was stimmt hier nicht? Ist der Takt im M003 ein anderer, oder fehlt was in der Formel?
Viele Grüße, Matthias. |