Digital Input/Output Reusable Driver
v1.1
This project implements a GPIO reusable driver that can be adapted to various microcontrollers.
Loading...
Searching...
No Matches
dio_cfg.h
Go to the documentation of this file.
1
13
#ifndef DIO_CFG_H_
14
#define DIO_CFG_H_
15
16
/*****************************************************************************
17
* Includes
18
*****************************************************************************/
19
#include <stdio.h>
20
21
/*****************************************************************************
22
* Preprocessor Constants
23
*****************************************************************************/
27
#define NUMBER_OF_PORTS 5U
28
29
/*****************************************************************************
30
* Typedefs
31
*****************************************************************************/
35
typedef
enum
36
{
37
DIO_LOW
,
38
DIO_HIGH
,
39
DIO_PIN_STATE_MAX
40
}
DioPinState_t
;
41
46
typedef
enum
47
{
48
DIO_PA
,
49
DIO_PB
,
50
DIO_PC
,
51
DIO_PD
,
52
DIO_PH
,
53
DIO_MAX_PORT
54
}
DioPort_t
;
55
56
61
typedef
enum
62
{
63
DIO_PA0
,
64
DIO_PA1
,
65
DIO_PA2
,
66
DIO_PA3
,
67
DIO_PA4
,
68
DIO_PA5
,
69
DIO_PA6
,
70
DIO_PA7
,
71
DIO_PA8
,
72
DIO_PA9
,
73
DIO_PA10
,
74
DIO_PA11
,
75
DIO_PA12
,
76
DIO_PA13
,
77
DIO_PA14
,
78
DIO_PA15
,
79
DIO_PB0
= 0,
80
DIO_PB1
,
81
DIO_PB2
,
82
DIO_PB3
,
83
DIO_PB4
,
84
DIO_PB5
,
85
DIO_PB6
,
86
DIO_PB7
,
87
DIO_PB8
,
88
DIO_PB9
,
89
DIO_PB10
,
90
DIO_PB12
= 12,
91
DIO_PB13
,
92
DIO_PB14
,
93
DIO_PB15
,
94
DIO_PC0
= 0,
95
DIO_PC1
,
96
DIO_PC2
,
97
DIO_PC3
,
98
DIO_PC4
,
99
DIO_PC5
,
100
DIO_PC6
,
101
DIO_PC7
,
102
DIO_PC8
,
103
DIO_PC9
,
104
DIO_PC10
,
105
DIO_PC11
,
106
DIO_PC12
,
107
DIO_PC13
,
108
DIO_PC14
,
109
DIO_PC15
,
110
DIO_PD2
= 2,
111
DIO_PH0
= 0,
112
DIO_PH1
,
113
DIO_MAX_PIN
= 16
114
}
DioPin_t
;
115
120
typedef
enum
121
{
122
DIO_INPUT
,
123
DIO_OUTPUT
,
124
DIO_FUNCTION
,
125
DIO_ANALOG
,
126
DIO_MAX_MODE
127
}
DioMode_t
;
128
132
typedef
enum
133
{
134
DIO_PUSH_PULL
,
135
DIO_OPEN_DRAIN
,
136
DIO_MAX_TYPE
137
}
DioType_t
;
138
142
typedef
enum
143
{
144
DIO_LOW_SPEED
,
145
DIO_MEDIUM_SPEED
,
146
DIO_HIGH_SPEED
,
147
DIO_VERY_SPEED
,
148
DIO_MAX_SPEED
149
}
DioSpeed_t
;
150
154
typedef
enum
155
{
156
DIO_NO_RESISTOR
,
157
DIO_PULLUP
,
158
DIO_PULLDOWN
,
159
DIO_MAX_RESISTOR
160
}
DioResistor_t
;
161
166
typedef
enum
167
{
168
DIO_AF0
,
169
DIO_AF1
,
170
DIO_AF2
,
171
DIO_AF3
,
172
DIO_AF4
,
173
DIO_AF5
,
174
DIO_AF6
,
175
DIO_AF7
,
176
DIO_AF8
,
177
DIO_AF9
,
178
DIO_AF10
,
179
DIO_AF11
,
180
DIO_AF12
,
181
DIO_AF13
,
182
DIO_AF14
,
183
DIO_AF15
,
184
DIO_MAX_FUNCTION
185
}
DioFunction_t
;
186
191
typedef
struct
192
{
193
DioPort_t
Port
;
194
DioPin_t
Pin
;
195
DioMode_t
Mode
;
196
DioType_t
Type
;
197
DioSpeed_t
Speed
;
198
DioResistor_t
Resistor
;
199
DioFunction_t
Function
;
200
}
DioConfig_t
;
201
202
203
/*****************************************************************************
204
* Function Prototypes
205
*****************************************************************************/
206
#ifdef __cplusplus
207
extern
"C"
{
208
#endif
209
210
const
DioConfig_t
*
const
DIO_configGet
(
void
);
211
size_t
DIO_configSizeGet
(
void
);
212
213
#ifdef __cplusplus
214
}
//extern "C"
215
#endif
216
217
#endif
/*DIO_H_*/
DioResistor_t
DioResistor_t
Definition
dio_cfg.h:155
DIO_PULLUP
@ DIO_PULLUP
Definition
dio_cfg.h:157
DIO_PULLDOWN
@ DIO_PULLDOWN
Definition
dio_cfg.h:158
DIO_NO_RESISTOR
@ DIO_NO_RESISTOR
Definition
dio_cfg.h:156
DIO_MAX_RESISTOR
@ DIO_MAX_RESISTOR
Definition
dio_cfg.h:159
DioType_t
DioType_t
Definition
dio_cfg.h:133
DIO_OPEN_DRAIN
@ DIO_OPEN_DRAIN
Definition
dio_cfg.h:135
DIO_MAX_TYPE
@ DIO_MAX_TYPE
Definition
dio_cfg.h:136
DIO_PUSH_PULL
@ DIO_PUSH_PULL
Definition
dio_cfg.h:134
DIO_configSizeGet
size_t DIO_configSizeGet(void)
Definition
dio_cfg.c:139
DioFunction_t
DioFunction_t
Definition
dio_cfg.h:167
DIO_AF13
@ DIO_AF13
Definition
dio_cfg.h:181
DIO_AF8
@ DIO_AF8
Definition
dio_cfg.h:176
DIO_AF12
@ DIO_AF12
Definition
dio_cfg.h:180
DIO_AF10
@ DIO_AF10
Definition
dio_cfg.h:178
DIO_AF14
@ DIO_AF14
Definition
dio_cfg.h:182
DIO_AF0
@ DIO_AF0
Definition
dio_cfg.h:168
DIO_MAX_FUNCTION
@ DIO_MAX_FUNCTION
Definition
dio_cfg.h:184
DIO_AF6
@ DIO_AF6
Definition
dio_cfg.h:174
DIO_AF7
@ DIO_AF7
Definition
dio_cfg.h:175
DIO_AF2
@ DIO_AF2
Definition
dio_cfg.h:170
DIO_AF4
@ DIO_AF4
Definition
dio_cfg.h:172
DIO_AF15
@ DIO_AF15
Definition
dio_cfg.h:183
DIO_AF1
@ DIO_AF1
Definition
dio_cfg.h:169
DIO_AF3
@ DIO_AF3
Definition
dio_cfg.h:171
DIO_AF5
@ DIO_AF5
Definition
dio_cfg.h:173
DIO_AF11
@ DIO_AF11
Definition
dio_cfg.h:179
DIO_AF9
@ DIO_AF9
Definition
dio_cfg.h:177
DioPort_t
DioPort_t
Definition
dio_cfg.h:47
DIO_PB
@ DIO_PB
Definition
dio_cfg.h:49
DIO_PH
@ DIO_PH
Definition
dio_cfg.h:52
DIO_PD
@ DIO_PD
Definition
dio_cfg.h:51
DIO_PC
@ DIO_PC
Definition
dio_cfg.h:50
DIO_MAX_PORT
@ DIO_MAX_PORT
Definition
dio_cfg.h:53
DIO_PA
@ DIO_PA
Definition
dio_cfg.h:48
DioSpeed_t
DioSpeed_t
Definition
dio_cfg.h:143
DIO_VERY_SPEED
@ DIO_VERY_SPEED
Definition
dio_cfg.h:147
DIO_HIGH_SPEED
@ DIO_HIGH_SPEED
Definition
dio_cfg.h:146
DIO_MAX_SPEED
@ DIO_MAX_SPEED
Definition
dio_cfg.h:148
DIO_LOW_SPEED
@ DIO_LOW_SPEED
Definition
dio_cfg.h:144
DIO_MEDIUM_SPEED
@ DIO_MEDIUM_SPEED
Definition
dio_cfg.h:145
DioPinState_t
DioPinState_t
Definition
dio_cfg.h:36
DIO_PIN_STATE_MAX
@ DIO_PIN_STATE_MAX
Definition
dio_cfg.h:39
DIO_LOW
@ DIO_LOW
Definition
dio_cfg.h:37
DIO_HIGH
@ DIO_HIGH
Definition
dio_cfg.h:38
DioMode_t
DioMode_t
Definition
dio_cfg.h:121
DIO_OUTPUT
@ DIO_OUTPUT
Definition
dio_cfg.h:123
DIO_ANALOG
@ DIO_ANALOG
Definition
dio_cfg.h:125
DIO_FUNCTION
@ DIO_FUNCTION
Definition
dio_cfg.h:124
DIO_MAX_MODE
@ DIO_MAX_MODE
Definition
dio_cfg.h:126
DIO_INPUT
@ DIO_INPUT
Definition
dio_cfg.h:122
DIO_configGet
const DioConfig_t *const DIO_configGet(void)
Definition
dio_cfg.c:98
DioPin_t
DioPin_t
Definition
dio_cfg.h:62
DIO_PC0
@ DIO_PC0
Definition
dio_cfg.h:94
DIO_PC14
@ DIO_PC14
Definition
dio_cfg.h:108
DIO_PC5
@ DIO_PC5
Definition
dio_cfg.h:99
DIO_PB9
@ DIO_PB9
Definition
dio_cfg.h:88
DIO_PA4
@ DIO_PA4
Definition
dio_cfg.h:67
DIO_PA12
@ DIO_PA12
Definition
dio_cfg.h:75
DIO_PH0
@ DIO_PH0
Definition
dio_cfg.h:111
DIO_PB15
@ DIO_PB15
Definition
dio_cfg.h:93
DIO_PB0
@ DIO_PB0
Definition
dio_cfg.h:79
DIO_PC1
@ DIO_PC1
Definition
dio_cfg.h:95
DIO_PB6
@ DIO_PB6
Definition
dio_cfg.h:85
DIO_PD2
@ DIO_PD2
Definition
dio_cfg.h:110
DIO_PC12
@ DIO_PC12
Definition
dio_cfg.h:106
DIO_PA14
@ DIO_PA14
Definition
dio_cfg.h:77
DIO_PA6
@ DIO_PA6
Definition
dio_cfg.h:69
DIO_PC11
@ DIO_PC11
Definition
dio_cfg.h:105
DIO_PA13
@ DIO_PA13
Definition
dio_cfg.h:76
DIO_PC13
@ DIO_PC13
Definition
dio_cfg.h:107
DIO_PC6
@ DIO_PC6
Definition
dio_cfg.h:100
DIO_PB14
@ DIO_PB14
Definition
dio_cfg.h:92
DIO_PB13
@ DIO_PB13
Definition
dio_cfg.h:91
DIO_PA15
@ DIO_PA15
Definition
dio_cfg.h:78
DIO_PB4
@ DIO_PB4
Definition
dio_cfg.h:83
DIO_PB10
@ DIO_PB10
Definition
dio_cfg.h:89
DIO_PC9
@ DIO_PC9
Definition
dio_cfg.h:103
DIO_PC2
@ DIO_PC2
Definition
dio_cfg.h:96
DIO_PB8
@ DIO_PB8
Definition
dio_cfg.h:87
DIO_PC3
@ DIO_PC3
Definition
dio_cfg.h:97
DIO_PB2
@ DIO_PB2
Definition
dio_cfg.h:81
DIO_PB3
@ DIO_PB3
Definition
dio_cfg.h:82
DIO_PA2
@ DIO_PA2
Definition
dio_cfg.h:65
DIO_PC4
@ DIO_PC4
Definition
dio_cfg.h:98
DIO_PA9
@ DIO_PA9
Definition
dio_cfg.h:72
DIO_PA3
@ DIO_PA3
Definition
dio_cfg.h:66
DIO_PC15
@ DIO_PC15
Definition
dio_cfg.h:109
DIO_PA7
@ DIO_PA7
Definition
dio_cfg.h:70
DIO_PB12
@ DIO_PB12
Definition
dio_cfg.h:90
DIO_PA8
@ DIO_PA8
Definition
dio_cfg.h:71
DIO_PA5
@ DIO_PA5
Definition
dio_cfg.h:68
DIO_MAX_PIN
@ DIO_MAX_PIN
Definition
dio_cfg.h:113
DIO_PB1
@ DIO_PB1
Definition
dio_cfg.h:80
DIO_PA1
@ DIO_PA1
Definition
dio_cfg.h:64
DIO_PC8
@ DIO_PC8
Definition
dio_cfg.h:102
DIO_PC7
@ DIO_PC7
Definition
dio_cfg.h:101
DIO_PB7
@ DIO_PB7
Definition
dio_cfg.h:86
DIO_PA11
@ DIO_PA11
Definition
dio_cfg.h:74
DIO_PC10
@ DIO_PC10
Definition
dio_cfg.h:104
DIO_PB5
@ DIO_PB5
Definition
dio_cfg.h:84
DIO_PA0
@ DIO_PA0
Definition
dio_cfg.h:63
DIO_PH1
@ DIO_PH1
Definition
dio_cfg.h:112
DIO_PA10
@ DIO_PA10
Definition
dio_cfg.h:73
DioConfig_t
Definition
dio_cfg.h:192
DioConfig_t::Port
DioPort_t Port
Definition
dio_cfg.h:193
DioConfig_t::Function
DioFunction_t Function
Definition
dio_cfg.h:199
DioConfig_t::Speed
DioSpeed_t Speed
Definition
dio_cfg.h:197
DioConfig_t::Mode
DioMode_t Mode
Definition
dio_cfg.h:195
DioConfig_t::Type
DioType_t Type
Definition
dio_cfg.h:196
DioConfig_t::Pin
DioPin_t Pin
Definition
dio_cfg.h:194
DioConfig_t::Resistor
DioResistor_t Resistor
Definition
dio_cfg.h:198
DIO
include
dio_cfg.h
Generated by
1.13.2