LES TIMERS
Application au microcontrôleur MC9S12
 

Hugues ANGELIS

page  07

                

Détail des registres



MCFLG (Modulus Down-Counter Flag Register)                                               (Base + 39)

Bit

7

6

5

4

3

2

1

0

Read

MCZF

0

0

0

POLF3

POLF2

POLF1

POLF0

Write

 

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
MCZF             Modulus Down-Counter Underflow Flag           Flag de débordement du MDC
Fonction :                Indique si le Modulus Down-Counter a débordé, c'est-à-dire si le décompteur a atteint 0 et qu'on lui a demandé de décompter une fois de plus.
Etat :                        0, Flag de Underflow non actif.  1, Flag de Underflow actif.
POLFX                                                               (Non traité ici. Voir documentation complète).

ICPAR (Input Control Pulse Accumulator Register)                                           (Base + 40)

Bit

7

6

5

4

3

2

1

0

Read

0

0

0

0

PA3EN

PA2EN

PA1EN

PA0EN

Write

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
PAXEN            Pulse Accumulator Enable               Activation des Pulse Accumulateurs 8 bits
Fonction :                Les bits PAXEN permettent respectivement d'activer les Pulse Accumulators de 8 bits PACX.
Si le bit PAEN du registre PACTL est actif, les bits PA3EN et PA2EN ne sont pas pris en compte, les registres étant utilisés pour le Pulse Accumulator 16 bits PACA.
Si le bit PBEN du registre PBCTL est actif, les bits PA1EN et PA0EN ne sont pas pris en compte, les registres étant utilisés pour le Pulse Accumulator 16 bits PACB.
Etat :                        0, Pulse Accumulator 8 bits PACX inactif.  1, Pulse Accumulator 8 bits PACX actif.

DLYCT (Delay Control Register)                                                                          (Base + 41)

Bit

7

6

5

4

3

2

1

0

Read

0

0

0

0

0

0

DLY1

DLY0

Write

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
DLYX              Delay Counter                                                                            Temporisateurs
Fonction :                Permet de définir le mode de fonctionnement des Delay Counters.
Si les Delay Counters sont activés, un front actif sur l'une des entrées (en mode IC ou PA) déclenche le comptage par le temporisateur d'un nombre fixé de période de l'horloge système du microcontrôleur. Si arrivé à la fin de sa temporisation, le niveau sur l'entrée est toujours le même que celui présent au début de la temporisation, les Delay Counters génèrent un signal qui sera capturé par l'entrée concernée. Si à la fin de la temporisation, le signal a évolué, les Delay Counters ne génèrent pas d'impulsion.
En mode IC, lorsque les Delay Counters sont activés, la valeur lue dans le registre du timer est donc l'horodatage de l'événement + les périodes de l'horloge système utilisées pour la temporisation.
Etat : 

00 Delay Counters désactivés.
01 Temporisation de 256 périodes de l'horloge système.
10 Temporisation de 512 périodes de l'horloge système.
11 Temporisation de 1024 périodes de l'horloge système.

ICSYS (Input Control System Control Register)                                                      (Base + 43)

Bit

7

6

5

4

3

2

1

0

Read

SH37

SH26

SH15

SH04

TFMOD

PACMX

BUFEN

LATQ

Write

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
HXY                                                                 (Non traité ici. Voir documentation complète).
TFMOD          Timer Flag Setting Mode                             Mode de fonctionnement des Flags
Fonction :                Permet de ne déclencher l'apparition d'un Flag qu'après la prise en compte de 2 évenements (le premier étant stocké dans le Hold Register et le second, dans le registre lui-même).
Lorsqu'il est activé, le bit TFMOD, si le timer en mode queue (voir le bit LATQ) et sous réserve que les bits NOVWX soient à '1', permet la mise à l'état actif des Flag uniquement lorsque les deux registres (du timer et son Hold Register) contiennent des données.
Lorsqu'il est désactivé, ou si le timer en mode normal, toute acquisition entraîne quelque soit le contenu du Hold Register la mise à l'état actif du Flag associé.
Etat :                        0, Le Flag est activé à la première capture.  1, Le Flag n'est activé (sous conditions) qu'à la deuxième capture consécutive.
PACMX          Pulse Accumulator Maximum Value  Limite de comptage des Pulse Accumulators
Fonction :                Permet de limiter le comptage dans les Pulse Accumulators de 8 bits.
Lorsqu'il est actif, le bit PACMX limite les Pulse Accumulators de 8 bits à la valeur 255. Tout nombre d'impulsion supérieur à 255 sera limité à un résultat de 255. Par exemple 257 impulsions sont visualisées dans le registre du Pulse Accumulator comme 255 impulsions.
Lorsqu'il est inactif, le bit PACMX ne limite pas les Pulse Accumulators de 8 bits à la valeur 255. Tout nombre d'impulsion doit donc être compris comme modulo 256. Par exemple 257 impulsions sont visualisées dans le registre du Pulse Accumulator comme 1 impulsion.
Etat :                        0, Mode modulo.  1, Mode limité.
BUFEN           Input Capture Buffer Enable                               Activation des Hold Registers
Fonction :                Permet d'activer ou de désactiver l'utilisation des Hold Registers.
Etat :                        0, Hold Registers désactivés. 1, Hold Registers activés.
LATQ             Latch Mode / Queue Mode                           Mode verrouillage ou mode queue
Fonction :                Permet de choisir entre 2 modes de fonctionnement des timers.
Lorsqu'il est actif, le bit LATQ, sous réserve que le bit BUFEN soit actif, place les timer en mode verrouillage. Lorsque le MDC contient la valeur 0 (par décomptage ou par écriture), le contenu des registres TC0 à TC3 et PAC0 à PAC3 est copié dans le Hold Registers associé.
Lorsqu'il est inactif, le bit LATQ, sous réserve que le bit BUFEN soit actif, place les timers en mode queue. C'est-à-dire qu'il permet la mise en place, automatique, du contenu du registre du timer, dans le Hold Register associé, au moment où est réalisé une nouvelle capture.
Etat :                        0, Mode Queue.  1, Mode Latch.

PBCTL (Pulse Accumulator B Control Register)                                                 (base + 48)

Bit

7

6

5

4

3

2

1

0

Read

0

PBEN

0

0

0

0

PBOVI

0

Write

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
PBEN              Pulse Accumulator B Enable                     Activation du Pulse Accumulator B.
Fonction :          Permet d'activer le Pulse Accumulator 16 bits B.
                         Si actif, les Pulse Accumulators 8 bits PAC1 et PAC0 sont automatiquement désactivés.
                         Si actif, le Pulse Accumulator B utilise le port 0 comme entrée.
Etat :                        0, PACB désactivé.  1, PACB activé.

PBOVI            Pulse Accumulator B Overflow Interrupt Enable
                                          Activation de l'interruption sur Overflow du Pulse Accumulator B.
Fonction :                Permet d'activer une interruption lors du débordement du Pulse Accumulator B.
Etat :                        0, Interruption sur débordement désactivée. 1, Interruption sur débordement activée.

PBFLG (Pulse Accumulator B Flag Register)                                                       (Base + 49)

Bit

7

6

5

4

3

2

1

0

Read

0

0

0

0

0

0

PBOVF

0

Write

 

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
PBOVF           Pulse Accumulator B Overflow Flag Flag d'Overflow du Pulse Accumulator B.
Fonction :                Indique un débordement du Pulse Accumulator B.
Doit être systématiquement remis à 0 pour permettre la prise en compte d'une nouvelle activation.
Etat :                        0, débordement détecté.  1, pas de débordement détecté.

 

PA3H (Pulse Accumulator 3 Hold Register)                                                          (Base + 50)

Bit

7

6

5

4

3

2

1

0

Read

PA3H7

PA3H6

PA3H5

PA3H4

PA3H3

PA3H2

PA3H1

PA3H0

Write

 

 

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture.
Accès impossible en écriture.
PA3HX            Pulse Accumulator 3 Hold Register Registre de maintient du Pulse Accumulators 3.
Fonction :                PA3HX contient la valeur stockée dans le registre de maintient du Pulse Accumulator 3.
Pour les registres PA2H, PA1H et PA0H utilisez les indications du registre PA3H en modifiant les valeurs des adresses conformément au tableau de la page XXX.

 

MCCNT (Modulus Down-Counter Count Register)                                            (base + 54)

Bit

7

6

5

4

3

2

1

0

Read

MCCNT15

MCCNT14

MCCNT13

MCCNT12

MCCNT11

MCCNT10

MCCNT9

MCCNT8

Write

Reset

0

0

0

0

0

0

0

0

                                                                                                                                    (base + 55)

Bit

7

6

5

4

3

2

1

0

Read

MCCNT7

MCCNT6

MCCNT5

MCCNT4

MCCNT3

MCCNT2

MCCNT1

MCCNT0

Write

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture et en écriture.
Une lecture de ce registre doit toujours être faite en un accès sur 16 bits, pas en 2 accès de 8 bits.
MCCNTX        Modulus Down-Counter                              Valeur du Modulus Down Counter.
Fonction :                Permet de connaître la valeur du Modulus Down-Counter. A lire sur 16 bits.

TC0H (Timer Input Capture / Output Compare Hold Register 0)                      (base + 56)

Bit

7

6

5

4

3

2

1

0

Read

TC0H15

TC0H14

TC0H13

TC0H12

TC0H11

TC0H10

TC0H9

TC0H8

Write

 

 

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

                                                                                                                                    (base + 57)

Bit

7

6

5

4

3

2

1

0

Read

TC0H7

TC0H6

TC0H5

TC0H4

TC0H3

TC0H2

TC0H1

TC0H0

Write

 

 

 

 

 

 

 

 

Reset

0

0

0

0

0

0

0

0

Accès :                    Toujours accessible en lecture.
Accès impossible en écriture.
TC0X               Timer 0                                                                  Registre du Timer du port 0.
Fonction :                Contient la valeur stockée dans le registre de maintient du timer 0.

Pour les registres TC1H, TC2H et TC3H utilisez les indications du registre TC0H en modifiant les valeurs des adresses conformément au tableau de la page XXX.