Académique Documents
Professionnel Documents
Culture Documents
microcontrôleur
NOM : Prénom :
Durée : 1h
Barème : I: /10
Utilisations du timer : /2
horloge : /3
a) : /3
b) : /1
c) : /1
II: /10
Méthode de réalisation : /3
Contenu des registres : /3
Algorithme : /4
II – On désire mesurer la période d'un signal présent sur une broche d'entrée d'un
PIC16F84 avec une résolution de 1µs.
D'après les extraits de la documentation constructeur fournis, proposer une méthode de
réalisation.
On suppose que la fréquence du quartz et la fréquence interne sont les mêmes qu'au I).
Indiquer les contenus à prévoir dans les registres concernés et l'algorithme de traitement
dans le programme principal.
Comme on ne sait pas au départ la durée à compter, il faut prévoir qu'elle puisse dépasser
les 256 µs et donc que le registre TMR0 'déborde' et repasse à 0. Il faut alors prévoir une
variable que l'on incrémentera à chaque débordement de TMR0 afin de pouvoir calculer la
période totale :
T = 256 x variable + TMR0
Le timer doit interrompre le CPU à chaque débordement pour qu'on incrémente la variable
(appelée ici VAR)
D'après la documentation, il faut donc mettre à 1 le bit T0IE (registre INTCON, bit 5)
Le débordement est indiqué par le passage à 1 du bit T0IF (registre INTCON, bit 2)
Le registre INTCON contient donc : x x 1 x x 0 x x à l'initialisation
répéter
attendre
jusqu'à ce que SIG = 1 ; détection du front montant de début de comptage
répéter
attendre
jusqu'à ce que SIG = 0 ; attente pour mesure période
répéter
attendre
jusqu'à ce que SIG = 1 ; détection du front montant de fin de comptage