MiraOS  1.22
mira_gpio.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (C) 2016 LumenRadio AB *
3  * *
4  * This file is part of MiraOS. *
5  * *
6  * MiraOS contains software components that are patented by LumenRadio. *
7  * Use of this software is under the terms of the LumenRadio MiraOS *
8  * license.
9  * *
10  * You should have received a copy of the MiraOS license from your *
11  * LumenRadio representative. If not, email to <licenses@lumenradio.com> *
12  ****************************************************************************/
13 
25 #ifndef LIBMIRA_GPIO_H_
26 #define LIBMIRA_GPIO_H_
27 
28 #include <stdint.h>
29 
35 typedef enum {
40 
46 typedef enum {
47  MiraGpioPortA = 0,
48  MiraGpioPortB = 1,
49  MiraGpioPortC = 2,
50  MiraGpioPortD = 3,
52 
58 typedef enum {
59  MiraInputPin,
60  MiraOutputPin,
62 
68 typedef enum {
69  MiraPullUp = 1,
70  MiraPullDown = 2,
71  MiraNoPull = 0,
73 
89 typedef void (* MiraGpioCallbackType)(uint8_t port, uint8_t pin);
90 
101 void mira_gpio_init(MiraGpioPorts port, uint8_t pin, MiraGpioPinMode mode, MiraGpioPullMode pull_mode);
102 
111 uint8_t mira_gpio_read(MiraGpioPorts port, uint8_t pin);
112 
121 void mira_gpio_set(MiraGpioPorts port, uint8_t pin);
122 
131 void mira_gpio_clear(MiraGpioPorts port, uint8_t pin);
132 
146 void mira_gpio_setup_interrupt(MiraGpioPorts port, uint8_t pin, MiraGpioInterruptType irq_type, MiraGpioCallbackType callback);
147 
156 void mira_gpio_enable_interrupt(MiraGpioPorts port, uint8_t pin);
157 
166 void mira_gpio_disable_interrupt(MiraGpioPorts port, uint8_t pin);
167 
168 #endif /* LIBMIRA_GPIO_H_ */
void mira_gpio_disable_interrupt(MiraGpioPorts port, uint8_t pin)
Disables an GPIO interrupt.
uint8_t mira_gpio_read(MiraGpioPorts port, uint8_t pin)
Read an input pin.
void mira_gpio_enable_interrupt(MiraGpioPorts port, uint8_t pin)
Enables an GPIO interrupt.
MiraGpioPinMode
GPIO pin mode.
Definition: mira_gpio.h:58
Definition: mira_gpio.h:38
MiraGpioInterruptType
GPIO edge trigger.
Definition: mira_gpio.h:35
void mira_gpio_init(MiraGpioPorts port, uint8_t pin, MiraGpioPinMode mode, MiraGpioPullMode pull_mode)
Initialize a GPIO pin.
MiraGpioPullMode
GPIO pin pullup/pulldown mode.
Definition: mira_gpio.h:68
MiraGpioPorts
GPIO ports.
Definition: mira_gpio.h:46
void mira_gpio_set(MiraGpioPorts port, uint8_t pin)
Set an output pin (logic high output).
Definition: mira_gpio.h:37
void(* MiraGpioCallbackType)(uint8_t port, uint8_t pin)
Type definition for callbacks invoked by the GPIO ISRs.
Definition: mira_gpio.h:89
void mira_gpio_setup_interrupt(MiraGpioPorts port, uint8_t pin, MiraGpioInterruptType irq_type, MiraGpioCallbackType callback)
Configure an GPIO interrupt.
Definition: mira_gpio.h:36
void mira_gpio_clear(MiraGpioPorts port, uint8_t pin)
Clear an output pin (logic low output).