Utilisations des interruptions

Dernière mise à jour le 12/03/2014  

---------------------------------------------------------------------------------------------------------------------------------------------------------------

Utilisations des interruptions 

Une interruption de type overflow (T0IF) peut être déclenchée. Elle est déclenchée par le passage de 0xFF à 0x00 en mode 8 bits ou par le passage de 0xFFFF à 0x0000 en mode 16 bits 

Autorisation des interruptions et prenons un exemple sur le timer0 avnt de s’attauqer au timer2 :  

Bit GIE(Global Interrupt Enable) du registre INTCON (Interrupt Control), etT0IE (Timer0 Interrupt Enable). Ces bits doivent être mis à 1 pour autoriser les interruptions. Comme vue précédemment, il faut utiliser la routine interrupt dans MikroPascal pour faire fonctionner les interruptions. Le principe est le suivant, lorsque que nous préconfigurons la valeur du timer, celui-ci va commencer de la valeur préconfigurer pour allé jusqu’au débordement (passage de $FF à 00 pour un 8bits) et, arrivé à cette valeur, le bit TOIF passera à 1, et le bit GIE passera à 0 automatiquement, le compteur s’arrête. Pour que le compteur repart à zéro, il faut attribuer un TOIF =0, ainsi le bit GIE repasse automatiquement à 1 et le compteur recommence à compter de la valeur préconfiguré jusqu’au débordement,  ainsi de suite le cycle recommence nous avons ici un signal créneaux. 

Je site un exemple si nous utilisons une fréquence en entrée de l'horloge de 1Mhz et que nous avions préconfiguré TMR0:=$0F, il aurait compté de $0F à $FF, (15 à 256 soit 240 impulsions) puis arrivé à la fin un débordement se produit. Si nous remettons le bit TOIF :=0, dans ce cas le timer repasse à la valeur préconfiguré de $0F à $FF pour recommencer le cycle. Voir Figure 5.1.1.a

 

Figure 5.1.1.a : Plus on s’éloigne et plus le débordement (arrivé) est long.

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site