De pulsteller
De puls teller is een 8-bits teller, die pulsen kan tellen uit één
van twee bronnen. De pulsteller is uitgevoerd in hardware, zodat ook
snelle pulstreinen geteld kunnen worden.
Teller ingang
Als eerste kan gekozen worden de teller het aantal pulsen te laten
tellen die op een ingang worden aangeboden. Deze ingang bevindt zich op
PA7.
Wanneer externe pulsen worden geteld, kan met het PEDGE bit in het
PACTL register worden bepaald of de teller opgaande flanken telt (PEDGE is
een '1'), of neergaande flanken (PEDGE is een '0'.)
Als tweede kan gekozen worden de teller intern opgewekte pulsen te
laten tellen, waarbij het tellen kan worden gestart en gestopt door het
signaal op PA7. De interne pulsen hebben een frequentie van 31250 Hz.
Wanneer interne pulsen worden geteld, kan met het PEDGE bit in het
PACTL register worden bepaald of de teller alleen telt wanneer PA7 een '1'
is (PEDGE is een '0'), of alleen telt wanneer PA7 een '0' is (PEDGE is een
'1'.)
De gewenste bron voor de puls teller wordt geprogrammeerd via het PAMOD
bit in het PACTL register. Als dit bit een '1' is, zal de teller intern
opgewekte pulsen tellen. Met dit bit op '0', telt de teller de pulsen die
worden aangeboden op PA7.
Het aantal getelde pulsen kan worden gelezen via het PACNT register.
Pulsteller aan- en uitzetten
De puls teller kan worden aan- en uitgezet door middel van het PAEN bit
in het PACTL register. Als de puls teller gebruikt wordt, moet dit bit een
'1' zijn.
Interrupts door de pulsteller
De puls teller kan twee soorten interrupts genereren. Er kan een
interrupt gegenereerd worden wanneer de teller van 255 weer terug op 0
komt. Deze overflow genereert een interrupt wanneer het PAOVI bit in het
TMSK2 register een '1' is. Daarnaast wordt bij een overflow het PAOVF bit
in het TFLG2 register een '1' gemaakt. Dit bit kan worden teruggezet op
'0' door op deze plaats in het TFLG2 register een '1' te schrijven.
De puls teller is tevens in staat een interrupt te genereren voor
iedere actieve flank op de PA7 pin. Via het PEDGE bit in het PACTL
register is geprogrammeerd of dit een opgaande of een neergaande flank is.
Deze interrupt kan worden aangezet door het PAII bit in het TMSK2 register
een '1' te maken. Behalve dat elke actieve flank op PA7 een interrupt kan
genereren, wordt het PAIF bit in het TFLG2 register een '1' gemaakt. Dit
bit kan worden teruggezet op '0' door op deze plaats in het TFLG2 register
een '1' te schrijven.
Registers voor de pulsteller
De registers die voor de instellingen van de pulsteller van belang
zijn, zijn:
PACTL $1026
|
ddra7
|
paen
|
Pamod
|
pedge
|
ddra3
|
i4o5
|
rtr1
|
rtr0
|
PACNT $1027
|
bit7
|
bit6
|
bit5
|
bit4
|
bit3
|
bit2
|
bit1
|
bit0
|
TMSK2 $1024
|
toi
|
rtii
|
Paovi
|
paii
|
-
|
-
|
pr1
|
pr0
|
TFLG2 $1025
|
tof
|
rtif
|
Paovf
|
paif
|
-
|
-
|
-
|
-
|
|