APM:Libraries
exti.h
Go to the documentation of this file.
1 #ifndef _EXTI_H_
2 #define _EXTI_H_
3 
4 #include <string.h>
5 #include "hal_types.h"
6 
7 #ifdef __cplusplus
8  extern "C" {
9 #endif
10 
11 
15 typedef enum afio_exti_num {
33 
39 /* (See AFIO sections, below) */
40 typedef enum afio_exti_port {
49 
51 typedef enum exti_trigger_mode {
56 
57 
58 
59 void exti_init();
60 
77 void exti_attach_interrupt(afio_exti_num num,
78  afio_exti_port port,
79  Handler handler,
80  exti_trigger_mode mode);
81 
82 
83 void exti_attach_interrupt_pri(afio_exti_num num,
84  afio_exti_port port,
85  Handler handler,
86  exti_trigger_mode mode,
87  uint8_t priority);
93 void exti_detach_interrupt(afio_exti_num num);
94 
95 
96 void exti_enable_interrupt(afio_exti_num num, bool e); // needed access to internal data
97 
106 static INLINE void interrupts() {
107  __enable_irq();
108 }
109 
120 static INLINE void noInterrupts() {
121  __disable_irq();
122 }
123 
124 
125 
126 static inline void exti_clear_pending_bit(uint32_t EXTI_Line)
127 {
128  EXTI->PR = EXTI_Line;
129 }
130 
131 
132 void EXTI0_IRQHandler(void);
133 void EXTI1_IRQHandler(void);
134 void EXTI2_IRQHandler(void);
135 void EXTI3_IRQHandler(void);
136 void EXTI4_IRQHandler(void);
137 void EXTI9_5_IRQHandler(void);
138 void EXTI15_10_IRQHandler(void);
139 
140 #ifdef __cplusplus
141  }
142 #endif
143 
144 
145 #endif
void EXTI1_IRQHandler(void)
Definition: exti.c:206
void EXTI15_10_IRQHandler(void)
Definition: exti.c:235
static INLINE void noInterrupts()
Definition: exti.h:120
static void exti_clear_pending_bit(uint32_t EXTI_Line)
Definition: exti.h:126
void EXTI2_IRQHandler(void)
Definition: exti.c:211
static INLINE void interrupts()
Definition: exti.h:106
void exti_enable_interrupt(afio_exti_num num, bool e)
Definition: exti.c:164
void exti_attach_interrupt(afio_exti_num num, afio_exti_port port, Handler handler, exti_trigger_mode mode)
Register a handler to run upon external interrupt.
Definition: exti.c:65
void EXTI0_IRQHandler(void)
Definition: exti.c:201
void EXTI4_IRQHandler(void)
Definition: exti.c:221
exti_trigger_mode
Definition: exti.h:51
#define INLINE
Definition: hal_types.h:79
afio_exti_num
Definition: exti.h:15
void exti_attach_interrupt_pri(afio_exti_num num, afio_exti_port port, Handler handler, exti_trigger_mode mode, uint8_t priority)
Definition: exti.c:103
void EXTI3_IRQHandler(void)
Definition: exti.c:216
void EXTI9_5_IRQHandler(void)
Definition: exti.c:226
void exti_init()
Definition: exti.c:46
uint64_t Handler
Definition: hal_types.h:19
void uint32_t num
Definition: systick.h:80
void exti_detach_interrupt(afio_exti_num num)
Unregister an external interrupt handler.
Definition: exti.c:143
afio_exti_port
External interrupt line port selector.
Definition: exti.h:40