CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Le fonctionnement du timer est régie par 3 registres mappés en mémoire 0.
TIM : reflète la valeur du compteur.
PRD : permet de charger la division de fréquence.
TCR : registre de contrôle.
Le timer fonctionne en diviseur de fréquence programmable avec comme entrée CLKOUT1 (signal de fréquence fclk/2). Une interruption TINT est générée à chaque fois que le compteur TIM est décrémenté à 0. Il est alors rechargé par la valeur placée dans PRD pour le compteur TIM et TDDR pour le prescaler PSC. La fréquence de CLKOUT1 est donc tout d’abord divisée par le premier compteur PSC (de 1 à 24) puis la retenue de ce compteur est envoyée sur le deuxième compteur TIM (division de fréquence programmable de 1 à 216). Soit une division de fréquence pouvant varier de 1 à 16 *216.
La période d’interruption est alors :
TTINT = TCLKOUT1 x [TDDR + 1] x [PRD + 1]
Remarque : il est possible de stopper le comptage des cycles en plaçant le bit TSS du registre TCR à 0.
Registre de contrôle TCR :
12 |
6 |
0 |
||||
Réservé |
SOFT |
FREE |
PSC |
TRB |
TSS |
TDDR |
Timer Reload Bit.
Quand TRB = 1 :
chargement des compteurs
TDDR PSC
PRD TIM
Timer Stop Status Quand TSS = 1 compteur arrêter. Au reset TSS = 0 |
Etat du compteur PSC. Pour connaitre l’etat global du compteur il faut lire le registre TIM et PSC |
Division de fréquence de 1 à 16 |
|
Fig. 36 : Schéma fonctionnel du timer.
Exemple :
On désire générer un signal carré de fréquence 50 kHz sur la broche XF (rappel : XF est un bit utilisateur du registre ST1 relié à la broche XF du DSP). Le TMS320C50 a une fréquence d’horloge de 40 MHz La table des vecteurs d’interruption sera placée à l’adresse 800h. Il faudra donc généré une routine d’interruption timer toutes les 10 us et dans cette routine inverser la valeur du bit XF.
.ps 0808h ; directive assembleur : permet de spécifier
; l’adresse d’écriture en mémoire programme
timer B rout_timer ; Branchement vers la routine d’interruption ITINT
.ps 0840h
.entry ; point d’entrer du programme
SETC INTM ; désactivation des it
LDP #0 ; page 0
OPL #0810h, PMST ; IPTR = 1 donc table d’it à l’adresse 0800h et SARAM en mémoire programme
SPLK #199, PRD ; Tint = 200 * Tclkout = 10 us
OPL #8, IMR ; démasque interruption Timer
SPLK #20h, TCR ; Charge PRD TIM et 0 PSC et TSS = 0 : départ compteur
SPLK #1000b, IFR ; efface toutes les interruptions
LACL #0 ; initialisation de ACC pour la routine d’interruption du TIMER
CLRC INTM ; activation des it
WAIT : B WAIT
rout_timer : XOR #0 ; ACC ACC XOR 0
XC 2, EQ ; si ACC = 0 alors effectuer les 2 instructions suivantes
CLRC XF ; mettre à 0 XF
RETE ; retour d’it, INTM = 0
SETC XF ; sinon mettre à 1 XF
RETE ; et retour d’it
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 661
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved