AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
irq.h
1 
18 #ifndef _AVRIO_IRQ_H_
19 #define _AVRIO_IRQ_H_
20 #include <avrio/defs.h>
21 #include <avr/interrupt.h>
22 
23 __BEGIN_C_DECLS
24 /* ========================================================================== */
25 
95 /* constants ================================================================ */
99 typedef enum {
101  eIrqEdge = 1,
104 } eIrqMode;
105 
106 /* structures =============================================================== */
111 typedef struct xIrqContext {
112  void (*func) (int8_t);
113  void * udata;
115 } xIrqContext;
116 
117 /* types ==================================================================== */
119 typedef int8_t xIrqHandle;
120 
122 typedef void (*vIrqFunc) (xIrqHandle i);
123 
124 /* internal public functions ================================================ */
135 
136 // -----------------------------------------------------------------------------
137 
138 #if defined(__DOXYGEN__)
139 /*
140  * __DOXYGEN__ defined
141  * Partie documentation ne devant pas être compilée.
142  * =============================================================================
143  */
144 
151 inline void vIrqClearFlag (xIrqHandle i);
152 
160 inline void vIrqEnable (xIrqHandle i);
161 
167 inline void vIrqDisable (xIrqHandle i);
168 
175 inline bool bIrqReadPin (xIrqHandle i);
176 
185 inline void vIrqSetMode (xIrqHandle i, eIrqMode mode);
186 
193 inline eIrqMode eIrqGetMode (xIrqHandle i);
194 
201 inline void vIrqSetUserData (xIrqHandle i, void * data);
202 
209 inline void * pvIrqGetUserData (xIrqHandle i);
210 
211 
221 inline void vIrqRaise (xIrqHandle i);
222 
228 #else
229 /*
230  * __DOXYGEN__ not defined
231  * Partie ne devant pas être documentée.
232  * =============================================================================
233  */
234 #include "avrio-config.h"
235 #ifdef AVRIO_IRQ_ENABLE
236 
237 /* public variables ========================================================= */
238 extern xIrqContext xIrq[];
239 #include "avrio-board-irq.h"
240 
241 /* inline public functions ================================================== */
242 
243 // -----------------------------------------------------------------------------
244 INLINE void
245 vIrqSetUserData (xIrqHandle i, void * data) {
246  xIrq[i].udata = data;
247 }
248 
249 // -----------------------------------------------------------------------------
250 INLINE void *
252  return xIrq[i].udata;
253 }
254 
255 // -----------------------------------------------------------------------------
256 INLINE eIrqMode
258  return xIrq[i].mode;
259 }
260 #endif
261 
262 #endif /* __DOXYGEN__ not defined */
263 
264 /* ========================================================================== */
265 __END_C_DECLS
266 #endif /* _AVRIO_IRQ_H_ */
void vIrqEnable(xIrqHandle i)
Valide ou invalide une interruption.
void * pvIrqGetUserData(xIrqHandle i)
Renvoie la variable utilisateur de l&#39;interruption.
void vIrqDisable(xIrqHandle i)
Dévalide une interruption.
eIrqMode mode
Definition: irq.h:114
Structure décrivant une interruption externe.
Definition: irq.h:111
eIrqMode eIrqGetMode(xIrqHandle i)
Renvoie le mode de déclenchement de l&#39;interruption.
void vIrqAttach(xIrqHandle i, vIrqFunc func, eIrqMode mode)
Attache une fonction à une broche d&#39;interruption.
Definition: irq.h:101
void vIrqClearFlag(xIrqHandle i)
Efface le drapeau de l&#39;interruption.
eIrqMode
Type d&#39;évement de déclenchement.
Definition: irq.h:99
void vIrqRaise(xIrqHandle i)
Déclenche une interruption.
void * udata
Definition: irq.h:113
void(* func)(int8_t)
Definition: irq.h:112
void(* vIrqFunc)(xIrqHandle i)
Type pointeur sur une routine d&#39;interruption utilisateur.
Definition: irq.h:122
void vIrqSetUserData(xIrqHandle i, void *data)
Modifie la variable utilisateur de l&#39;interruption.
bool bIrqReadPin(xIrqHandle i)
Renvoie l&#39;état logique de la broche de l&#39;interruption.
void vIrqSetMode(xIrqHandle i, eIrqMode mode)
Modifie l&#39;événement déclenchant l&#39;interruption.
int8_t xIrqHandle
Désigne le numéro d&#39;une interruption.
Definition: irq.h:119