Attachment 'ej_timer2.c'
Download 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 }
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.