Firmware SDK
twr_exti

Driver for EXTI (external interrupts) More...

Enumerations

enum  twr_exti_line_t {
  TWR_EXTI_LINE_PA0 = _TWR_EXTI_PORT_A | 0,
  TWR_EXTI_LINE_PA1 = _TWR_EXTI_PORT_A | 1,
  TWR_EXTI_LINE_PA2 = _TWR_EXTI_PORT_A | 2,
  TWR_EXTI_LINE_PA3 = _TWR_EXTI_PORT_A | 3,
  TWR_EXTI_LINE_PA4 = _TWR_EXTI_PORT_A | 4,
  TWR_EXTI_LINE_PA5 = _TWR_EXTI_PORT_A | 5,
  TWR_EXTI_LINE_PA6 = _TWR_EXTI_PORT_A | 6,
  TWR_EXTI_LINE_PA7 = _TWR_EXTI_PORT_A | 7,
  TWR_EXTI_LINE_PA8 = _TWR_EXTI_PORT_A | 8,
  TWR_EXTI_LINE_PA9 = _TWR_EXTI_PORT_A | 9,
  TWR_EXTI_LINE_PA10 = _TWR_EXTI_PORT_A | 10,
  TWR_EXTI_LINE_PA11 = _TWR_EXTI_PORT_A | 11,
  TWR_EXTI_LINE_PA12 = _TWR_EXTI_PORT_A | 12,
  TWR_EXTI_LINE_PA13 = _TWR_EXTI_PORT_A | 13,
  TWR_EXTI_LINE_PA14 = _TWR_EXTI_PORT_A | 14,
  TWR_EXTI_LINE_PA15 = _TWR_EXTI_PORT_A | 15,
  TWR_EXTI_LINE_PB0 = _TWR_EXTI_PORT_B | 0,
  TWR_EXTI_LINE_PB1 = _TWR_EXTI_PORT_B | 1,
  TWR_EXTI_LINE_PB2 = _TWR_EXTI_PORT_B | 2,
  TWR_EXTI_LINE_PB3 = _TWR_EXTI_PORT_B | 3,
  TWR_EXTI_LINE_PB4 = _TWR_EXTI_PORT_B | 4,
  TWR_EXTI_LINE_PB5 = _TWR_EXTI_PORT_B | 5,
  TWR_EXTI_LINE_PB6 = _TWR_EXTI_PORT_B | 6,
  TWR_EXTI_LINE_PB7 = _TWR_EXTI_PORT_B | 7,
  TWR_EXTI_LINE_PB8 = _TWR_EXTI_PORT_B | 8,
  TWR_EXTI_LINE_PB9 = _TWR_EXTI_PORT_B | 9,
  TWR_EXTI_LINE_PB10 = _TWR_EXTI_PORT_B | 10,
  TWR_EXTI_LINE_PB11 = _TWR_EXTI_PORT_B | 11,
  TWR_EXTI_LINE_PB12 = _TWR_EXTI_PORT_B | 12,
  TWR_EXTI_LINE_PB13 = _TWR_EXTI_PORT_B | 13,
  TWR_EXTI_LINE_PB14 = _TWR_EXTI_PORT_B | 14,
  TWR_EXTI_LINE_PB15 = _TWR_EXTI_PORT_B | 15,
  TWR_EXTI_LINE_PC13 = _TWR_EXTI_PORT_C | 13,
  TWR_EXTI_LINE_PC14 = _TWR_EXTI_PORT_C | 14,
  TWR_EXTI_LINE_PC15 = _TWR_EXTI_PORT_C | 15,
  TWR_EXTI_LINE_PH0 = _TWR_EXTI_PORT_H | 0,
  TWR_EXTI_LINE_PH1 = _TWR_EXTI_PORT_H | 1,
  TWR_EXTI_LINE_P0 = TWR_EXTI_LINE_PA0,
  TWR_EXTI_LINE_P1 = TWR_EXTI_LINE_PA1,
  TWR_EXTI_LINE_P2 = TWR_EXTI_LINE_PA2,
  TWR_EXTI_LINE_P3 = TWR_EXTI_LINE_PA3,
  TWR_EXTI_LINE_P4 = TWR_EXTI_LINE_PA4,
  TWR_EXTI_LINE_P5 = TWR_EXTI_LINE_PA5,
  TWR_EXTI_LINE_P6 = TWR_EXTI_LINE_PB1,
  TWR_EXTI_LINE_P7 = TWR_EXTI_LINE_PA6,
  TWR_EXTI_LINE_P8 = TWR_EXTI_LINE_PB0,
  TWR_EXTI_LINE_P9 = TWR_EXTI_LINE_PB2,
  TWR_EXTI_LINE_P10 = TWR_EXTI_LINE_PA10,
  TWR_EXTI_LINE_P11 = TWR_EXTI_LINE_PA9,
  TWR_EXTI_LINE_P12 = TWR_EXTI_LINE_PB14,
  TWR_EXTI_LINE_P13 = TWR_EXTI_LINE_PB15,
  TWR_EXTI_LINE_P14 = TWR_EXTI_LINE_PB13,
  TWR_EXTI_LINE_P15 = TWR_EXTI_LINE_PB12,
  TWR_EXTI_LINE_P16 = TWR_EXTI_LINE_PB8,
  TWR_EXTI_LINE_P17 = TWR_EXTI_LINE_PB9,
  TWR_EXTI_LINE_BUTTON = TWR_EXTI_LINE_PA8
}
 EXTI lines. More...
 
enum  twr_exti_edge_t {
  TWR_EXTI_EDGE_RISING = 0,
  TWR_EXTI_EDGE_FALLING = 1,
  TWR_EXTI_EDGE_RISING_AND_FALLING = 2
}
 Interrupt edge sensitivity. More...
 

Functions

void twr_exti_register (twr_exti_line_t line, twr_exti_edge_t edge, void(*callback)(twr_exti_line_t, void *), void *param)
 Enable EXTI line interrupt and register callback function. More...
 
void twr_exti_unregister (twr_exti_line_t line)
 Disable EXTI line interrupt. More...
 

Detailed Description

Driver for EXTI (external interrupts)

Enumeration Type Documentation

◆ twr_exti_edge_t

Interrupt edge sensitivity.

Enumerator
TWR_EXTI_EDGE_RISING 

EXTI line is configured to rising edge sensitivity.

TWR_EXTI_EDGE_FALLING 

EXTI line is configured to falling edge sensitivity.

TWR_EXTI_EDGE_RISING_AND_FALLING 

EXTI line is configured to both rising and falling edge sensitivity.

Definition at line 195 of file twr_exti.h.

◆ twr_exti_line_t

EXTI lines.

Enumerator
TWR_EXTI_LINE_PA0 

EXTI line PA0.

TWR_EXTI_LINE_PA1 

EXTI line PA1.

TWR_EXTI_LINE_PA2 

EXTI line PA2.

TWR_EXTI_LINE_PA3 

EXTI line PA3.

TWR_EXTI_LINE_PA4 

EXTI line PA4.

TWR_EXTI_LINE_PA5 

EXTI line PA5.

TWR_EXTI_LINE_PA6 

EXTI line PA6.

TWR_EXTI_LINE_PA7 

EXTI line PA7.

TWR_EXTI_LINE_PA8 

EXTI line PA8.

TWR_EXTI_LINE_PA9 

EXTI line PA9.

TWR_EXTI_LINE_PA10 

EXTI line PA10.

TWR_EXTI_LINE_PA11 

EXTI line PA11.

TWR_EXTI_LINE_PA12 

EXTI line PA12.

TWR_EXTI_LINE_PA13 

EXTI line PA13.

TWR_EXTI_LINE_PA14 

EXTI line PA14.

TWR_EXTI_LINE_PA15 

EXTI line PA15.

TWR_EXTI_LINE_PB0 

EXTI line PB0.

TWR_EXTI_LINE_PB1 

EXTI line PB1.

TWR_EXTI_LINE_PB2 

EXTI line PB2.

TWR_EXTI_LINE_PB3 

EXTI line PB3.

TWR_EXTI_LINE_PB4 

EXTI line PB4.

TWR_EXTI_LINE_PB5 

EXTI line PB5.

TWR_EXTI_LINE_PB6 

EXTI line PB6.

TWR_EXTI_LINE_PB7 

EXTI line PB7.

TWR_EXTI_LINE_PB8 

EXTI line PB8.

TWR_EXTI_LINE_PB9 

EXTI line PB9.

TWR_EXTI_LINE_PB10 

EXTI line PB10.

TWR_EXTI_LINE_PB11 

EXTI line PB11.

TWR_EXTI_LINE_PB12 

EXTI line PB12.

TWR_EXTI_LINE_PB13 

EXTI line PB13.

TWR_EXTI_LINE_PB14 

EXTI line PB14.

TWR_EXTI_LINE_PB15 

EXTI line PB15.

TWR_EXTI_LINE_PC13 

EXTI line PC13.

TWR_EXTI_LINE_PC14 

EXTI line PC14.

TWR_EXTI_LINE_PC15 

EXTI line PC15.

TWR_EXTI_LINE_PH0 

EXTI line PH0.

TWR_EXTI_LINE_PH1 

EXTI line PH1.

TWR_EXTI_LINE_P0 

EXTI line P0.

TWR_EXTI_LINE_P1 

EXTI line P1.

TWR_EXTI_LINE_P2 

EXTI line P2.

TWR_EXTI_LINE_P3 

EXTI line P3.

TWR_EXTI_LINE_P4 

EXTI line P4.

TWR_EXTI_LINE_P5 

EXTI line P5.

TWR_EXTI_LINE_P6 

EXTI line P6.

TWR_EXTI_LINE_P7 

EXTI line P7.

TWR_EXTI_LINE_P8 

EXTI line P8.

TWR_EXTI_LINE_P9 

EXTI line P9.

TWR_EXTI_LINE_P10 

EXTI line P10.

TWR_EXTI_LINE_P11 

EXTI line P11.

TWR_EXTI_LINE_P12 

EXTI line P12.

TWR_EXTI_LINE_P13 

EXTI line P13.

TWR_EXTI_LINE_P14 

EXTI line P14.

TWR_EXTI_LINE_P15 

EXTI line P15.

TWR_EXTI_LINE_P16 

EXTI line P16.

TWR_EXTI_LINE_P17 

EXTI line P17.

TWR_EXTI_LINE_BUTTON 

EXTI line BUTTON.

Definition at line 21 of file twr_exti.h.

Function Documentation

◆ twr_exti_register()

void twr_exti_register ( twr_exti_line_t  line,
twr_exti_edge_t  edge,
void(*)(twr_exti_line_t, void *)  callback,
void *  param 
)

Enable EXTI line interrupt and register callback function.

Parameters
[in]lineEXTI line
[in]edgeDesired interrupt edge sensitivity
[in]callbackFunction address (called when interrupt occurs)
[in]paramOptional parameter being passed to callback function (can be NULL)

Definition at line 17 of file twr_exti.c.

Referenced by twr_lis2dh12_set_alarm(), twr_module_encoder_is_present(), twr_pulse_counter_init(), and twr_spirit1_sleep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ twr_exti_unregister()

void twr_exti_unregister ( twr_exti_line_t  line)

Disable EXTI line interrupt.

Parameters
[in]lineEXTI line

Definition at line 90 of file twr_exti.c.

Referenced by twr_lis2dh12_set_alarm(), twr_module_encoder_deinit(), and twr_spirit1_deinit().

Here is the call graph for this function:
Here is the caller graph for this function: