Vous êtes sur la page 1sur 19

Université HASSAN II-Mohammedia

Faculté des sciences et techniques


Département : génie électrique

Filière : Master ISEA .


Module : Architectures et techniques des réseaux haut débit

Timer1
et sécurité réseaux.
.
Sommaire
Introduction
Caractéristiques du timer 1
Le timer 1 et les interruptions
Le registre T1CON
Le timer 1 en mode « timer »
Le timer 1 en mode compteur synchrone et asynchrone
Le timer 1 et TOSCEN
 Utilisation du débordement
Utilisation d’une lecture
Utilisation d’une écriture
Conclusion
Introduction

• Le timer 1 fonctionne dans son ensemble


comme le timer 0. Il y a cependant quelques
différences.
• Tout d’abord, ce timer est capable de compter
sur 16 bits, à comparer aux 8 bits du timer 0.
Caractéristiques du timer 1

• Le timer 1 compte donc sur 16 bits


(TMR1L , TMR1H).
• Peut générer des interruptions après un
débordement
• Prédiviseur (division maximale de 8)
Le timer 1 et les interruptions

• les conditions pour que le timer 1 génère une


interruption :
– Autorisation d’interruption timer1(TMR1IE dans
PIE1)
– Activation de PIE1 positionnement de
PEIE(INTCON)
– Positionnement de GIE
• Le débordement sera indiqué par
TMR1IF(PIR1)
Le timer 1 et les interruptions

• Initialisation des interruptions sur le timer 1 :


bsf STATUS,RP0 ; passer en banque 1
bsf PIE1,TMR1IE ; autoriser interruptions timer 1
bcf STATUS,RP0 ; repasser banque 0
bsf INTCON,PEIE ; interruptions périphériques
en service
bsf INTCON,GIE ; interruptions en service
Le registre T1CON

b7 : Inutilisé : lu comme « 0 »
b6 : Inutilisé : lu comme « 0 »
b5 : T1CKPS1 : Timer 1 oscillator ClocK Prescale Select bit 1
b4 ; T1CKPS0 : Timer 1 oscillator ClocK Prescale Select bit 0
b3 : T1OSCEN : Timer 1 OSCillator ENable control bit
b2 : T1SYNC : Timer 1 external clock input SYNChronisation control
bit
b1 : TMR1CS : TiMeR 1 Clock Source select bit
b0 : TMR1ON : TiMeR 1 ON bit
Le timer 1 en mode « timer »

T1CON : B’00XX0001’

Voici un exemple d’initialisation du timer 1,


configuré avec un prédiviseur de 4

clrf TMR1L ; effacer timer 1, 8 lsb


clrf TMR1H ; effacer timer 1, 8 msb
movlw B’00100001’ ; valeur pour T1CON
movwf T1CON ; prédiviseur = 4, mode timer, timer on
Le timer 1 en mode compteur
synchrone
• T1CON : B’00XX0011’
• compter les événements sur la pin T1CKI
• la sélection du signal via TMR1CS
Le timer 1 en mode compteur
asynchrone
T1CON : B’00ab0111’
Le timer 1 et TOSCEN

• T1CON : B’00xx1x11’
Le timer 1 et TOSCEN
Utilisation du débordement
clrf TMR1L ; effacer timer 1, 8 lsb
clrf TMR1H ; effacer timer 1, 8 msb
movlw B’00100000’ ; valeur pour T1CON
movwf T1CON ; prédiviseur = 4, mode timer,
timer off
bsf STATUS,RP0 ; passer en banque 1
bsf PIE1,TMR1IE ; autoriser interruptions timer 1
bcf STATUS,RP0 ; repasser banque 0
bsf INTCON,PEIE ; interruptions périphériques en
service
bsf INTCON,GIE ; interruptions en service
bsf T1CON,TMR1ON ; mettre timer 1 en service
Utilisation d’une lecture

• movf TMR1L,w ; lire 8 lsb


• movwf VALL ; sauver dans variable
• movf TMR1H,w ; lire 8 msb
• movwf VALH ; sauver dans variable
Utilisation d’une lecture
• movf TMR1H,w ; charger poids fort
• movwf VALH ; sauver valeur
• movf TMR1L,w ; lire poids faible
• movwf VALL ; sauver valeur
• movf TMR1H ; relire poids fort
• xorwf VALH,w ; comparer les 2 poids forts
• btfsc STATUS,Z ; tester si identiques
• goto suite ; oui, fin du traitement
• movf TMR1H,w ; charger poids fort
• movwf VALH ; sauver valeur
• movf TMR1L,w ; lire poids faible
• movwf VALL ; sauver valeur
• suite
Utilisation d’une écriture

movlw VALL ; charger valeur basse


movwf TMR1L ; dans registre
movlw VALH ; charger valeur haute
movwf TMR1H ; dans registre
Utilisation d’une écriture

bcf INTCON,GIE ; interdire les interruptions


clrf TMR1L ; 0 dans TMR1L
movlw VALH ; charger valeur haute
movwf TMR1H ; dans registre
movlw VALL ; charger valeur basse
movwf TMR1L ; dans registre
bsf INTCON,GIE ; réautoriser les interruptions
Conclusion

• L’écriture dans l’un des registres TMR1L ou


TMR1H provoque l’effacement des éléments
déjà comptabilisés dans le prédiviseur. Une
écriture dans l’un de ces registres, si vous
utilisez un prédiviseur différent de 1,
provoquera donc une perte d’informations.