Microchip® Advanced Software Framework

extint.h File Reference

SAM External Interrupt Driver.

Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.

#include <compiler.h>
#include <pinmux.h>
#include "extint_callback.h"

Data Structures

struct  extint_chan_conf
 External Interrupt Controller channel configuration structure. More...
 
struct  extint_events
 External Interrupt event enable/disable structure. More...
 
struct  extint_nmi_conf
 External Interrupt Controller NMI configuration structure. More...
 

Macros

#define EIC_NUMBER_OF_INTERRUPTS   16
 
#define EXTINT_CLK_GCLK   0
 The EIC is clocked by GCLK_EIC. More...
 
#define EXTINT_CLK_ULP32K   1
 The EIC is clocked by CLK_ULP32K. More...
 

Typedefs

typedef void(* extint_callback_t )(void)
 Type definition for an EXTINT module callback function. More...
 

Enumerations

enum  extint_detect {
  EXTINT_DETECT_NONE = 0,
  EXTINT_DETECT_RISING = 1,
  EXTINT_DETECT_FALLING = 2,
  EXTINT_DETECT_BOTH = 3,
  EXTINT_DETECT_HIGH = 4,
  EXTINT_DETECT_LOW = 5
}
 External interrupt edge detection configuration enum. More...
 
enum  extint_pull {
  EXTINT_PULL_UP = SYSTEM_PINMUX_PIN_PULL_UP,
  EXTINT_PULL_DOWN = SYSTEM_PINMUX_PIN_PULL_DOWN,
  EXTINT_PULL_NONE = SYSTEM_PINMUX_PIN_PULL_NONE
}
 External interrupt internal pull configuration enum. More...
 

Functions

Event Management
void extint_enable_events (struct extint_events *const events)
 Enables an External Interrupt event output. More...
 
void extint_disable_events (struct extint_events *const events)
 Disables an External Interrupt event output. More...
 
Configuration and Initialization (Channel)
void extint_chan_get_config_defaults (struct extint_chan_conf *const config)
 Initializes an External Interrupt channel configuration structure to defaults. More...
 
void extint_chan_set_config (const uint8_t channel, const struct extint_chan_conf *const config)
 Writes an External Interrupt channel configuration to the hardware module. More...
 
Configuration and Initialization (NMI)
static void extint_nmi_get_config_defaults (struct extint_nmi_conf *const config)
 Initializes an External Interrupt NMI channel configuration structure to defaults. More...
 
enum status_code extint_nmi_set_config (const uint8_t nmi_channel, const struct extint_nmi_conf *const config)
 Writes an External Interrupt NMI channel configuration to the hardware module. More...
 
Detection testing and clearing (channel)
static bool extint_chan_is_detected (const uint8_t channel)
 Retrieves the edge detection state of a configured channel. More...
 
static void extint_chan_clear_detected (const uint8_t channel)
 Clears the edge detection state of a configured channel. More...
 
Detection Testing and Clearing (NMI)
static bool extint_nmi_is_detected (const uint8_t nmi_channel)
 Retrieves the edge detection state of a configured NMI channel. More...
 
static void extint_nmi_clear_detected (const uint8_t nmi_channel)
 Clears the edge detection state of a configured NMI channel. More...