Pièce jointe « mod_TIMER0.tex »
Téléchargement 1 \section{module TIMER0}
2
3 Auteur: Santiago Gonzalez
4
5 Courrier: santigoro en gmail.com
6
7 Voici les fonctions pour travailler avec le TIMER0 des PIC16F87X.
8
9 \subsection{timer0\_init}
10 Initialise TIMER0 avec l'horloge interne (mode timer) ou externe (mode compteur).
11
12 void timer0\_init(unsigned char intern\_extern);
13
14 intern\_extern Établit si on utilise une horloge interne ou une horloge/stímuli externe (modo compteur).\\
15 TIMER\_INTERN :Utilise l'horloge interne. \\
16 COUNTER\_EXTERN :Utilise l'horloge/stimuli externe (mode compteur)
17
18 timer0\_init(TIMER\_INTERN);
19
20 Met à 0 le compteur du timer0 y efface le drapeau (flag) des interruptions. Le compteur s'incrémente à chaque cycle d'instructions (Freq.Osc. / 4) si on n'utilise pas le pré-diviseur (prescaler.)
21 \subsection{timer0\_set\_edge}
22 Indique si l'incrément du compteur se produit sur le front montant ou descendant (mode compteur).
23
24 void timer0\_set\_edge(unsigned char set\_risfal);
25
26 Met à 0 le compteur du timer0 y efface le drapeau (flag) des interruptions Le compteur s'incrémente sur le front montant ou descendant présent sur la broche (pin) RA4 si on n'utilise pas le pré-diviseur (prescaler.)
27
28 set\_risfal Établit si l'incrément du compteur se produit sur le front montant ou descendant
29
30 Les options possibles sont :
31
32 RIS\_EDGE
33 FAL\_EDGE
34
35 Où RIS\_EDGE indique l'incrément du compteur sur front montant (rising) et FAL\_EDGE sur front descendant (falling).
36
37 timer0\_set\_edge(FAL\_EDGE);
38
39 \subsection{timer0\_set\_prescaler}
40 Assigne le pré-diviseur (prescaler) du timer0 , ceci annule l'usage du prédiviseur (prescaler) du chien de garde (watchdog) et établit la valeur du pré-diviseur (prescaler.)
41
42 void timer0\_set\_prescaler(unsigned char set\_presc);
43
44 set\_presc Établit la valeur du pré-diviseur (prescaler.)
45
46 Les options possibles sont :
47
48 // Fréquence du cycle d'instructions \\
49 PRESC\_DIV\_2 // (FOSC/4) del PIC divisé par 2 \\
50 PRESC\_DIV\_4 // (FOSC/4) del PIC divisé par 4 \\
51 PRESC\_DIV\_8 \\
52 PRESC\_DIV\_16 \\
53 PRESC\_DIV\_32 \\
54 PRESC\_DIV\_64 \\
55 PRESC\_DIV\_128 \\
56 PRESC\_DIV\_256 \\
57 PRESC\_OFF // assigné au chien de garde (watchdog)
58
59 N'importe quelle opération d'écriture dans le registre TMR0 met automatiquement à 0 le compteur du pré-diviseur (prescaler), bien qu'il garde sa configuration.
60 \subsection{timer0\_write}
61 Écrit la valeur du compteur TMR0. \\
62 void timer0\_write(unsigned char set\_count); \\
63 set\_count Écrit la valeur du compteur TMR0.
64 \subsection{timer0\_read}
65 Lit la valeur du compteur TMR0. \\
66 \#define timer0\_read() TMR0
67 \subsection{Exemple module TIMER0}
68 Pour compiler tu as besoin des commandes suivantes
69
70 Exemple de compilation : ./compila.sh ej\_timer0.c 16f877a
71
72 ej\_timer0.c
73 \verbatiminput{source/ej_timer0.c}
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.