Pièce jointe « mod_int.tex »
Téléchargement 1 \section{module interruption}
2 Ce module génère les fonctions nécessaires pour travailler avec les interruptions
3 \#include <interrupt.h>
4 \subsection{\_ISR\_MAIN}
5 \_ISR\_MAIN Définit la fonction interruption principal, cette fonction s'exécutera quand arrivera n'importe quelle interruption.
6 On peut choisir n'importe quel nom pour la fonction interruption principal., on l'utilise ainsi :
7 \verbatiminput{source/interruption1.c}
8
9 \subsection{ISR\_MAIN}
10 ISR\_MAIN Definit la fonction/code interruption principal.
11 Cette fonction/code s'exécutera quand arrivera n'importe quelle interruption.
12
13 On peut choisir n'importe quel nom pour la fonction interruption principal., on l'utilise ainsi :
14 \verbatiminput{source/interruption2.c}
15
16 \subsection{enable\_int\_global}
17 Autorise globalement toutes les interruptions
18
19 void enable\_int\_global(void);
20
21 exemple:
22 enable\_int\_global();
23 \subsection{disable\_int\_global}
24 Inhibe globalmente toutes les interruptions
25
26 void disable\_int\_global(void);
27
28 exemple:
29 disable\_int\_global();
30 \subsection{interruption Externe}
31 Les fonctions pour travailler avec l'interruption externe (RB0) sont :
32 \subsubsection{enable\_int\_ext}
33 Autorise l'interruption externe
34
35 \#define H\_TO\_L 0
36
37 \#define L\_TO\_H 1
38
39 void enable\_int\_ext(BYTE flanco);
40
41 exemple:
42 enable\_int\_global(L\_TO\_H);
43
44 H\_TO\_L indique une interruption activée sur front descendant
45
46 L\_TO\_H indique une interruption activée sur front montant
47 \subsubsection{disable\_int\_ext}
48 Inhibe l'interruption externe
49
50 void disable\_int\_ext(void);
51
52 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
53 \subsubsection{int\_ext\_flag}
54 Retourne l'état actuel du drapeau (flag) indicateur de l'interruption externe
55
56 BYTE int\_ext\_flag(void);
57
58 L'usage de cette fonction ne modifie pas le drapeau (flag)
59 \subsubsection{int\_ext\_free\_flag}
60 Remise à zéro du drapeau (flag) indicateur d'interruption externe
61
62 void int\_ext\_free\_flag(void);
63
64 L'usage de cette fonction modifie le drapeau (flag), le mettant à 0
65
66 \subsection{interruption TIMER0}
67 Les fonctions pour travailler avec l'interruption par débordement du TIMER0 sont :
68 \subsubsection{enable\_int\_timer0}
69 autorise l'interruption par débordement du TIMER0
70
71 void enable\_int\_timer0(void);
72
73 Pour que cette interruption soit autorisé il faut aussi activer l'interruption globale
74 \subsubsection{disable\_int\_timer0}
75 inhibe l'interruption par desbordement du TIMER0
76
77 void disable\_int\_timer0(void);
78
79 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
80 \subsubsection{int\_timer0\_flag}
81 Retourne l 'état actuel du drapeau (flag) indicateur de l'interruption par desbordement du TIMER0
82
83 BYTE int\_timer0\_flag(void);
84
85 L'usage de cette fonction ne modifie pas le drapeau (flag)
86 \subsubsection{int\_timer0\_free\_flag}
87 Remise à zéro du drapeau (flag) indicateur de l'interruption par débordement du TIMER0
88
89 void int\_timer0\_free\_flag(void);
90
91 L'usage de cette fonction modifie le drapeau (flag), le mettant à 0
92
93 \subsection{interruption RB4 à RB7}
94 Les fonctions pour travailler avec l'interruption par changement d'état des broches (pins) RB4 a RB7 sont:
95 \subsubsection{enable\_int\_rb4to7}
96 autorise l'interruption par changement d'état des broches (pins) de RB4 à RB7
97
98 void enable\_int\_rb4to7(void);
99
100 Pour que cette interruption soit autorisée il faut aussi activer l'interruption globale
101 \subsubsection{disable\_int\_rb4to7}
102 inhibe l'interruption par changement d'état des broches (pins) de Rb4 à RB7
103
104 void disable\_int\_rb4to7(void);
105
106 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
107 \subsubsection{int\_rb4to7\_flag}
108 Retourne l 'état actuel du drapeau (flag) indicateur de l'interruption par changement d'état des broches (pins) de RB4 à RB7
109
110 BYTE int\_rb4to7\_flag(void);
111
112 L'usage de cette fonction ne modifie pas le drapeau (flag)
113 \subsubsection{int\_rb4to7\_free\_flag}
114 Remise à zéro du drapeau (flag) indicateur de l'interruption par changement d'état des broches (pins) de RB4 à RB7
115
116 void int\_rb4to7\_free\_flag(void);
117
118 L'usage de cette fonction modifie le drapeau (flag), le mettant à 0
119
120 \subsection{interruption Rx UART}
121 Les fonctions pour travailler avec l'interruption par réception de caractère dans l 'UART sont :
122 \subsubsection{enable\_int\_uart}
123 autorise l'interruption par réception de caractère dans l'UART
124
125 void enable\_int\_uart(void);
126
127 Pour que cette interruption soit autorisée il faut aussi activer l'interruption globale
128 \subsubsection{disable\_int\_uart}
129 inhibe l'interruption par réception de caractère dans l'UART
130
131 void disable\_int\_uart(void);
132
133 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
134 \subsubsection{int\_uart\_flag}
135 Retourne l 'état actuel du drapeau (flag) indicateur de l'interruption par réception de caractère dans l 'UART
136
137 BYTE int\_uart\_flag(void);
138
139 L'usage de cette fonction ne modifie pas le drapeau (flag), en plus on ne peut pas.
140 \subsubsection{int\_uart\_free\_flag}
141 Cette fonction n'existe pas.
142 Le drapeau (flag) se remettra à zéro lors de la lecture avec la fonction uart\_getc du caractère entrant, cette fonction doit être placé à l'intérieur de la fonction interruption sinon le drapeau (flag) ne se remettra jamais à 0 et on ne sortira jamais de la fonction interruption,
143 car la fonction interruption sera invoqué jusqu'à la fin des temps.
144
145 \subsection{interruption ADC}
146 Les fonctions pour travailler avec l'interruption qui donne la fin de la conversion analogique numérique sont :
147 \subsubsection{enable\_int\_adc}
148 autorise l'interruption de fin de conversion analogique numérique
149
150 void enable\_int\_adc(void);
151
152 Pour que cette interruption soit autorisée il faut aussi activer l'interruption globale
153 \subsubsection{disable\_int\_adc}
154 inhibe l'interruption de fin de conversion analogique numérique
155
156 void disable\_int\_adc(void);
157
158 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
159 \subsubsection{int\_adc\_flag}
160 Retourne l 'état actuel du drapeau (flag) indicateur de l'interruption de fin de conversion analogique numérique
161
162 BYTE int\_adc\_flag(void);
163
164 L'usage de cette fonction ne modifie pas le drapeau (flag).
165
166 \subsection{interruption Comparateur}
167 Les fonctions pour travailler avec l'interruption de fin de comparaison sont:
168 \subsubsection{enable\_int\_comp}
169 autorise l'interruption de fin de comparaison
170
171 void enable\_int\_comp(void);
172
173 Pour que cette interruption soit autorisée il faut aussi activer l'interruption globale
174 \subsubsection{disable\_int\_comp}
175 inhibe l'interruption de fin de comparaison
176
177 void disable\_int\_comp(void);
178
179 En inhibant l'interruption on ne modifie pas l'autorisation de l'interruption globale
180 \subsubsection{int\_comp\_flag}
181 Retourne l 'état actuel du drapeau (flag) indicateur de l'interruption de fin de comparaison
182
183 BYTE int\_comp\_flag(void);
184
185 L'usage de cette fonction ne modifie pas le drapeau (flag).
186
187 \subsection{Exemple du module Interruption Externe}
188 Pour compiler tu as besoin des commandes suivantes
189
190 Exemple de compilation : ./compila.sh ej\_intext 16f877a
191
192 ej\_intext.c
193 \verbatiminput{source/ej_intext.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.