| Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
|

Home Experimente I/O-Bausteine Experimente mit Z80-CTC Z80-CTC |
|
| Siehe auch: Z80-CTC (Z8430, MK3883) | |
|
|
Z80-CTC
Die nächsten zwei Experimente zeigen den Einsatz eines CTC als Stoppuhr bzw. als Frequenz-Messgerät. Bei den beiden Experimenten werden Kanal 0 und Kanal 3 des CTC eingesetzt. CTC3 wird im Timer-Modus betrieben und dient zur Erzeugung einer Zeitbasis mit 1 ms Auflösung. CTC0 wird als Zähler betrieben. Beide CTC-Kanäle erzeugen Interrupts, die im Folgenden kurz besprochen werden. Kanal 3 des CTC wird so eingestellt, dass er den CPU-Takt (4.000 MHz) durch 4000 teilt und im Abstand von 1 ms einen Interrupt generiert. Die Interrupt-Serviceroutine ICLOCK verwaltet nun zwei zeitgesteuerte Vorgänge. Zum einen wird nach 1000 Interruptaufrufen (= alle 1.000 s) der Zählerstand für das Frequenz-Messgerät ermittelt und zum anderen wird alle 10 Aufrufe (= 0.01 s) der Wert der Stoppuhr weitergezählt. Diese beiden Vorgänge bilden die Zeitbasis für die Stoppuhr und das Frequenz-Messgerät. Kanal 0 des CTC dient als Zähler bei der Frequenzmessung. Da jeder CTC-Kanal nur acht Bit breit ist und eine Kaskadierung nicht möglich ist (die Kanäle 1 und 2 werden zur Baudratenerzeugung benötigt), wird die Zählerbreite von Kanal 0 per Software erweitert. Dazu wird der CTC-Kanal so programmiert, dass nach jedem Nulldurchgang (Overflow) ein Interrupt generiert wird. Die entsprechende Serviceroutine (IFREQ) inkrementiert nun eine Variable, so dass sich der Gesamtzählerstand aus dem Wert der Variablen und dem Wert von Kanal 0 ergibt. Zu beachten ist, dass die CTC-Kanäle aus Abwärtszählern aufgebaut sind, das Ergebnis also vor der Weiterverarbeitung invertiert werden muss, wenn das Zeitkonstantenregister auf null gesetzt ist.
|
|
Home Experimente I/O-Bausteine Experimente mit Z80-CTC Z80-CTC |
|