Pièce jointe « ej_timer2.c »
Téléchargement
Afficher/masquer les numéros de lignes
1 ej_timer2.c
2 /*
3 Exemple d'utilisation des fonctions du module TIMER2.
4 valide pour la famille 16f87Xa,
5 Dans cet exemple on utilise le timer2 avec un compteur par logiciel,
6 pour faire une led clignotante:
7 connecter une led ou autre sortie à RB7.
8 RB7 se mettra à l'état haut (Vdd) durant approximativement 1 seconde avec une horloge de 4 MHz, et à l'état bas durant une autre seconde.
9 */
10 #include <pic/p16f877a.h>
11 #include <timer2.h>
12 int main(void)
13 {
14 unsigned char compteur;
15 TRISBbits.TRISB7 = 0;
16 PORTBbits.RB7 = 0;
17 timer2_init(); // Initialise le timer2
18 timer2_set_prescaler(PRESC_DIV_16); // Établit le pré-diviseur en fréquence d'instructions
19 timer2_set_period(255); // Établit la période à 255
20 compteur = 0;
21 bucle:
22 while (timer2_read() < 255); // Attend ici tant que le compteur du timer <255
23 compteur = compteur + 1; // Incrémente le compteur
24 if (compteur == 255) // Si compteur = 255 inverse l'état de RB7
25 {
26 if (PORTBbits.RB7 == 0)
27 PORTBbits.RB7 = 1;
28 else
29 PORTBbits.RB7 = 0;
30 compteur = 0; // Reinitialise le compteur
31 }
32 goto bucle;
33 }
Fichiers joints
Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.Vous n'êtes pas autorisé à joindre un fichier à cette page.