Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
firmware
boards
airbourne
airbourne
include
gpio.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017, James Jackson
3
*
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
*
12
* * Redistributions in binary form must reproduce the above copyright notice,
13
* this list of conditions and the following disclaimer in the documentation
14
* and/or other materials provided with the distribution.
15
*
16
* * Neither the name of the copyright holder nor the names of its
17
* contributors may be used to endorse or promote products derived from
18
* this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
#ifndef GPIO_H
33
#define GPIO_H
34
35
#include "
system.h
"
36
37
class
GPIO
38
{
39
40
public
:
41
typedef
enum
42
{
43
HIGH
,
44
LOW
45
}
gpio_write_t
;
46
47
typedef
enum
48
{
49
INPUT
,
50
OUTPUT
,
51
PERIPH_OUT
,
52
PERIPH_IN
,
53
PERIPH_IN_OUT
,
54
ANALOG
,
55
EXTERNAL_INTERRUPT
56
}
gpio_mode_t
;
57
58
void
init
(
GPIO_TypeDef
*BasePort, uint16_t pin, gpio_mode_t mode);
59
void
write
(gpio_write_t state);
60
void
toggle
(
void
);
61
void
set_mode
(gpio_mode_t mode);
62
bool
read
();
63
64
private
:
65
uint16_t
pin_
;
66
GPIO_TypeDef
*
port_
;
67
gpio_mode_t
mode_
;
68
69
};
70
71
#endif // GPIO_H
GPIO::EXTERNAL_INTERRUPT
Definition:
gpio.h:55
GPIO::toggle
void toggle(void)
Definition:
gpio.cpp:52
GPIO::set_mode
void set_mode(gpio_mode_t mode)
Definition:
gpio.cpp:82
GPIO::INPUT
Definition:
gpio.h:49
GPIO::read
bool read()
Definition:
gpio.cpp:63
GPIO::gpio_write_t
gpio_write_t
Definition:
gpio.h:41
GPIO::init
void init(GPIO_TypeDef *BasePort, uint16_t pin, gpio_mode_t mode)
Definition:
gpio.cpp:34
GPIO_TypeDef
General Purpose I/O.
Definition:
stm32f4xx.h:1281
GPIO::HIGH
Definition:
gpio.h:43
GPIO::mode_
gpio_mode_t mode_
Definition:
gpio.h:67
GPIO::OUTPUT
Definition:
gpio.h:50
GPIO::PERIPH_IN
Definition:
gpio.h:52
GPIO::port_
GPIO_TypeDef * port_
Definition:
gpio.h:66
GPIO::write
void write(gpio_write_t state)
Definition:
gpio.cpp:41
GPIO::PERIPH_IN_OUT
Definition:
gpio.h:53
GPIO
Definition:
gpio.h:37
GPIO::PERIPH_OUT
Definition:
gpio.h:51
system.h
GPIO::LOW
Definition:
gpio.h:44
GPIO::ANALOG
Definition:
gpio.h:54
GPIO::pin_
uint16_t pin_
Definition:
gpio.h:65
GPIO::gpio_mode_t
gpio_mode_t
Definition:
gpio.h:47
rosflight_firmware
Author(s): Daniel Koch
, James Jackson
autogenerated on Wed Jul 3 2019 19:59:24