elomax

[ Techniek ] [ Shop ] [ Site map
TCNT ] [ Capture (IC) ] Compare (OC) ] OC Voorbeeld 1 ] OC Voorbeeld 2 ] OC Voorbeeld 3 ] IC Voorbeeld 1 ]

Terug
Omhoog

Input-capture timers

De input-capture timers bestaan elk uit een 16-bits register, dat wordt gevuld met de waarde die de free-running counter heeft, op het moment dat de bij de input-capture behorende ingangspin van logisch niveau verandert. Met zo'n input capture kan dus worden gedetecteerd op welk tijdstip een bepaalde gebeurtenis in de buitenwereld plaats vond. De input-capture registers zijn 16-bits registers, die alleen gelezen kunnen worden. Schrijven naar deze registers heeft geen effect.


Er zijn in de micro-controller 4 input-capture systemen aanwezig, waarvan er één eventueel als output-compare geprogrammeerd kan worden. Deze is dan niet langer als input-capture beschikbaar.

De voorwaarde waaronder de waarde van de free-running counter in het input-capture register wordt opgeslagen is flexibel in te stellen. Voor elk van de input-captures bevat het TCTL2 register twee bits die voor de betreffende input-capture bepalen onder welke condities van de bijbehorende ingang het capture register geladen moet worden met de inhoud van de free-running counter:

EDGxB

EDGxA

conditie

0

0

nooit

0

1

bij een verandering van een '0' in een '1'

1

0

bij een verandering van een '1' in een '0'

1

1

bij elke verandering

Bij een input-capture kan een interrupt gegenereerd worden. Dit wordt mogelijk gemaakt door het bij de betreffende input-capture behorende ICxI bit in het TMSK1 register een '1' te maken. Daarnaast wordt bij elke input-capture een vlag gezet in het TFLG1 register. Dit ICxF bit kan worden teruggezet op '0', door op de betreffende plaats in het TFLG1 register een '1' te schrijven.

Wanneer een input-capture register wordt gelezen door de micro-controller, kan het zijn dat tijdens het lezen een (nieuwe) input-capture optreedt. Daardoor zou de inhoud van het register veranderen tijdens het uitlezen van het register. Dit zou eenzelfde probleem kunnen geven als beschreven voor het lezen van de free-running counter. Om dit te voorkomen wordt de input-capture functie door de micro-controller tijdelijk geblokkeerd wanneer het meest significante byte van een input-capture register wordt gelezen. Daardoor heeft de processor tijd om na het meest significante byte ook het minst significante byte correct te lezen. Omdat de input-capture functie maar gedurende 1 cycle geblokkeerd wordt, moet een input-capture register met 16-bits instructies gelezen worden (zoals LDD, LDX of LDY instructies.)

De namen van de verschillende bits en registers voor de 4 input-captures is volgens de volgende tabel:

systeem

EDGxA

EDGxB

ICxI

ICxF

register

pin

capture1

EDG1A

EDG1B

IC1I

IC1F

TIC1

PA2

capture2

EDG2A

EDG2B

IC2I

IC2F

TIC2

PA1

capture3

EDG3A

EDG3B

IC3I

IC3F

TIC3

PA0

capture4

EDG4A

EDG4B

IC4I

IC4F

TIC4

PA3

Input-capture 4

Zoals gezegd heeft input-capture 4 een gedeelde plaats met een output-compare register. Of dit register als input-capture werkt, dan wel als output-compare, wordt bepaald door het I4O5 bit in het PACTL register. Door een '0' in dit bit te schrijven, wordt het register een input-capture register. Wanneer de micro-controller start, is het register al als input-capture geconfigureerd.

Daarnaast is het mogelijk via het DDRA3 bit in het PACTL register te bepalen of PA3 (de pin die bij input-capture 4 hoort) een ingang is (DDRA3 moet dan een '0' worden gemaakt) of een uitgang (DDRA3 moet dan op '1' gezet worden.) De normale toepassing van een input-capture vereist dat deze pin een ingang is. Wanneer de micro-controller start, is PA3 al als ingang geprogrammeerd.

Registers voor de besturing van de input-captures

De I/O registers die de bits bevatten voor de besturing van de input-capture timers zijn:

TMSK1 $1022

oc1i

oc2i

oc3i

oc4i

ic4i,oc5i

ic1i

ic2i

ic3i

 

TFLG1 $1023

oc1f

oc2f

oc3f

oc4f

ic4f,oc5f

ic1f

ic2f

ic3f

 

PACTL $1026

ddra7

paen

pamod

pedge

ddra3

i4o5

rtr1

rtr0

 

De I/O registers die bij een input-capture de van de free-running counter gekopiëerde waarde bevatten zijn:

TIC1 $1010, $1011

bit15

bit14

bit13

bit12

bit11

bit10

bit9

bit8

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

 

TIC2 $1012, $1013

bit15

bit14

bit13

bit12

bit11

bit10

bit9

bit8

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

 

TIC3 $1014, $1015

bit15

bit14

bit13

bit12

bit11

bit10

bit9

bit8

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

 

TIC4, TOC5 $101E, $101F

bit15

bit14

bit13

bit12

bit11

bit10

bit9

bit8

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0


Vorige ] Volgende ]

© 2005...2008 Elomax [Voorwaarden ]