Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » CTC Kanal 2 des M003 initialisieren » Themenansicht

Autor Thread - Seiten: -1-
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.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
22.02.2016, 00:17 Uhr
ambrosius



Du mußt noch die Bearbeitungszeit der Interruptroutine berücksichtigen.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
22.02.2016, 17:11 Uhr
maleuma



Das Kanalsteuerwort setzt den Vorteiler auf 16, nicht auf 256.
Das ergibt dann eine Zeit von 1ms. Kann es sein, dass in der Interruptroutine noch eine Zählschleife ist, die das auf 1 sek hochrechnet?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
22.02.2016, 18:13 Uhr
mwd



Ich kann da nichts dergleichen finden. Mit A7h wird der Vorteiler meines Wissens auf 256 gesetzt. Kann es sein, daß es eine Kaskadierung mit den Kanälen 0 ind 1 des CTC implizit gibt?

Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
22.02.2016, 18:38 Uhr
maleuma



Kieser/Meder sagt auf Seite 149:

"Mit Bit D5 = 1 wird der Wert des Vorteilers auf VT = 256 gesetzt; anderenfalls D5 = 0 wird der Wert VT = 16 eingestellt."

und

"Mit Bit D6 = 0 wird die Zeitgebermode des CTC-Kanals ausgewählt"

Demnach ergibt sich mit A7h (D6=0, D5=1) Zeitgebermode mit VT=256. Du hast Recht!
Eine CTC-Kaskadierung gibt es auch. Dann müsste der CTC meiner Meinung nach aber im Zählermode betrieben werden und nicht im Zeitgebermode.
--
Mario.

Dieser Beitrag wurde am 22.02.2016 um 18:50 Uhr von maleuma editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
22.02.2016, 18:47 Uhr
maleuma



Ich habe den Quelltext von CLOCK.ASM bei mir gefunden.
Schau Dir einmal den Quelltext weiter unten an, dort steht:

LD A,(ZAE)
DEC A ;ZAEHLER DEC
LD (ZAE),A
JR NZ,ZWI ;NULL-KONTR.
LD A,57
LD (ZAE),A ;ZAEHL. LADEN

Damit wird ein Zähler realisiert, der von 57 auf 0 zählt bis die Zeit verändert wird.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
22.02.2016, 20:30 Uhr
mwd



Hab ich glatt übersehen. Das ist des Rätsels Lösung! Vielen Dank!

Viele Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek