gossamer 0.0.1
a very lightweight app framework for SAMD and SAML chips
Loading...
Searching...
No Matches
eic.h
1
2/*
3 * MIT License
4 *
5 * Copyright (c) 2022 Joey Castillo
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 */
25
26#pragma once
27
28#include <stdint.h>
29#include <stdbool.h>
30
39 INTERRUPT_TRIGGER_NONE = 0,
40 INTERRUPT_TRIGGER_RISING,
41 INTERRUPT_TRIGGER_FALLING,
42 INTERRUPT_TRIGGER_BOTH,
44
45typedef void (*eic_cb_t)(uint8_t channel);
46
49void eic_init(void);
50
53void eic_enable(void);
54
66int8_t eic_configure_pin(const uint8_t pin, eic_interrupt_trigger_t trigger);
67
71bool eic_enable_interrupt(const uint8_t pin);
72
76bool eic_disable_interrupt(const uint8_t pin);
77
81bool eic_enable_event(const uint8_t pin);
82
86bool eic_disable_event(const uint8_t pin);
87
94void eic_configure_callback(eic_cb_t callback);
95
98void eic_disable(void);
99
int8_t eic_configure_pin(const uint8_t pin, eic_interrupt_trigger_t trigger)
Configures an external interrupt on one of the external interrupt pins.
Definition eic.c:99
bool eic_disable_event(const uint8_t pin)
Disables the interrupt on the given interrupt channel.
Definition eic.c:190
bool eic_disable_interrupt(const uint8_t pin)
Disables the interrupt on the given interrupt channel.
Definition eic.c:150
void eic_configure_callback(eic_cb_t callback)
Configures an external interrupt callback.
Definition eic.c:219
bool eic_enable_interrupt(const uint8_t pin)
Enables an interrupt on the given interrupt channel.
Definition eic.c:129
void eic_disable(void)
Disables the external interrupt controller.
Definition eic.c:209
eic_interrupt_trigger_t
An enum defining the types of interrupt trigger you wish to scan for.
Definition eic.h:38
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:171
void eic_enable(void)
Enables the external interrupt controller.
Definition eic.c:87