gossamer 0.0.0
a very lightweight app framework for SAMD and SAML chips
Loading...
Searching...
No Matches
eic.h
Go to the documentation of this file.
1
5/*
6 * MIT License
7 *
8 * Copyright (c) 2022 Joey Castillo
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining a copy
11 * of this software and associated documentation files (the "Software"), to deal
12 * in the Software without restriction, including without limitation the rights
13 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 * copies of the Software, and to permit persons to whom the Software is
15 * furnished to do so, subject to the following conditions:
16 *
17 * The above copyright notice and this permission notice shall be included in all
18 * copies or substantial portions of the Software.
19 *
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26 * SOFTWARE.
27 */
28
29#pragma once
30
31#include <stdint.h>
32#include <stdbool.h>
33
36 INTERRUPT_TRIGGER_NONE = 0,
37 INTERRUPT_TRIGGER_RISING,
38 INTERRUPT_TRIGGER_FALLING,
39 INTERRUPT_TRIGGER_BOTH,
41
42typedef void (*eic_cb_t)(uint8_t channel);
43
46void eic_init(void);
47
50void eic_enable(void);
51
62bool eic_configure_pin(const uint32_t pin, eic_interrupt_trigger trigger);
63
67bool eic_enable_interrupt(const uint8_t pin);
68
72bool eic_disable_interrupt(const uint8_t pin);
73
77bool eic_enable_event(const uint8_t pin);
78
82bool eic_disable_event(const uint8_t pin);
83
90void eic_configure_callback(eic_cb_t callback);
91
94void eic_disable(void);
bool eic_disable_event(const uint8_t pin)
Disables the interrupt on the given interrupt channel.
Definition: eic.c:189
bool eic_disable_interrupt(const uint8_t pin)
Disables the interrupt on the given interrupt channel.
Definition: eic.c:149
void eic_configure_callback(eic_cb_t callback)
Configures an external interrupt callback.
Definition: eic.c:218
eic_interrupt_trigger
An enum defining the types of interrupt trigger you wish to scan for.
Definition: eic.h:35
bool eic_enable_interrupt(const uint8_t pin)
Enables an interrupt on the given interrupt channel.
Definition: eic.c:128
bool eic_configure_pin(const uint32_t pin, eic_interrupt_trigger trigger)
Configures an external interrupt on one of the external interrupt pins.
Definition: eic.c:99
void eic_disable(void)
Disables the external interrupt controller.
Definition: eic.c:208
void eic_init(void)
Initializes the external interrupt controller, but does not enable it.
Definition: eic.c:62
bool eic_enable_event(const uint8_t pin)
Enables an interrupt on the given interrupt channel.
Definition: eic.c:170
void eic_enable(void)
Enables the external interrupt controller.
Definition: eic.c:87