theCore C++ embedded framework
Collaboration diagram for External interrupt manager:

Files

file  stm32/exti_manager.cpp
 EXTI manager implementation for STM32 platform.
 
file  stm32/export/platform/exti_manager.hpp
 External interrupt manager for STM32 platform.
 

Data Structures

class  ecl::exti_manager
 External interrupt manager class. More...
 

Functions

static void ecl::exti_manager::init ()
 Initializes EXTI manager. More...
 
static void ecl::exti_manager::unsubscribe (handler &h)
 Unsubscribes handler from any event. More...
 
static void ecl::exti_manager::mask (handler &h)
 Masks (disables) pending EXTI request. More...
 
static void ecl::exti_manager::unmask (handler &h)
 Unmasks (enables) pending EXTI request. More...
 
 ecl::exti_manager::handler::handler (callback cb, void *ctx)
 Constructs handler with user data. More...
 
 ecl::exti_manager::handler::~handler ()
 Destroys handler and unsubscribe it from EXTI events. More...
 
void ecl::exti_manager::handler::set_cb (callback cb)
 Sets user-defined callback. More...
 
void ecl::exti_manager::handler::set_ctx (void *ctx)
 Sets user-defined context. More...
 
template<typename Gpio >
static void ecl::exti_manager::subscribe (handler &h, trigger t)
 Subscribes to event on the given GPIO. More...
 

Detailed Description

Function Documentation

◆ init()

void ecl::exti_manager::init ( )
static

Initializes EXTI manager.

Note
Requires that IRQ manager will be initialized first.
See also
irq_manager
Here is the call graph for this function:

◆ unsubscribe()

void ecl::exti_manager::unsubscribe ( handler h)
static

Unsubscribes handler from any event.

Precondition
Initialized EXTI manager.
Parameters
[in]hHandler, must be previously subscribed.
Here is the call graph for this function:

◆ mask()

void ecl::exti_manager::mask ( handler h)
static

Masks (disables) pending EXTI request.

Parameters
[in]hPreviously subscribed handler.

◆ unmask()

void ecl::exti_manager::unmask ( handler h)
static

Unmasks (enables) pending EXTI request.

Parameters
[in]hPreviously subscribed handler.

◆ handler()

ecl::exti_manager::handler::handler ( exti_manager::callback  cb,
void *  ctx 
)

Constructs handler with user data.

◆ ~handler()

ecl::exti_manager::handler::~handler ( )

Destroys handler and unsubscribe it from EXTI events.

Here is the call graph for this function:

◆ set_cb()

void ecl::exti_manager::handler::set_cb ( callback  cb)

Sets user-defined callback.

◆ set_ctx()

void ecl::exti_manager::handler::set_ctx ( void *  ctx)

Sets user-defined context.

◆ subscribe()

template<typename Gpio >
void ecl::exti_manager::subscribe ( exti_manager::handler h,
exti_manager::trigger  t 
)
static

Subscribes to event on the given GPIO.

User should retain handler object in the valid state in order to receive any events associated with given EXTI. Upon deletion of the handler object unsubscription will be executed by itself.

Precondition
Initialized EXTI manager.
Unused handler.
Warning
If handler was already subscribed to EXTI events then behaviour is undefined.
See also
unsubscribe()
Parameters
[out]hUnsubscribed handler of a GPIO event.
[in]tTrigger which will produce event.
Here is the call graph for this function: