4017? Nicht schlecht, 16 Pins zusätzlich zu einem 8-Pinner nur wegen den
200us... :-)
Wenn wir mal von den internen 4MHz ausgehen, mit denen der PIC gerne
mal läuft, dann guggst Du erst mal, wie Du Deinen Prescaler einstellen
musst. Der Timer wird mit 1MHz getaktet, 200us willst, d.h. Du darfst
den Prescaler auf 1:1 stellen. Jetzt kommt das wichtige: Innerhalb der
Interrupt-Service-Routine musst Du den Timer selber neu laden, damit
der Interrupt nicht alle 256us kommt sondern früher. Beachten musst Du
weiterhin, wieviele Takte schon abgearbeitet wurden: Hier ein
Beispiel:
; ****** Interrupt-Service ********************************
org 4
; 4
movwf IntW ; 1 ; Register retten!
movf STATUS,W ; 1
movwf IntStat ; 1
movlw 200-9 ; 1 ; Timer nachladen
movwf RTCC ; 1
;---
; 9
bcf INTCON,RTIF ; Interrupt zurücksetzen