xref: /btstack/port/msp432p401lp-cc256x/ti/devices/msp432p4xx/driverlib/gpio.h (revision 5fd0122a3e19d95e11e1f3eb8a08a2b2acb2557e)
1*5fd0122aSMatthias Ringwald /* --COPYRIGHT--,BSD
2*5fd0122aSMatthias Ringwald  * Copyright (c) 2017, Texas Instruments Incorporated
3*5fd0122aSMatthias Ringwald  * All rights reserved.
4*5fd0122aSMatthias Ringwald  *
5*5fd0122aSMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
6*5fd0122aSMatthias Ringwald  * modification, are permitted provided that the following conditions
7*5fd0122aSMatthias Ringwald  * are met:
8*5fd0122aSMatthias Ringwald  *
9*5fd0122aSMatthias Ringwald  * *  Redistributions of source code must retain the above copyright
10*5fd0122aSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
11*5fd0122aSMatthias Ringwald  *
12*5fd0122aSMatthias Ringwald  * *  Redistributions in binary form must reproduce the above copyright
13*5fd0122aSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
14*5fd0122aSMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
15*5fd0122aSMatthias Ringwald  *
16*5fd0122aSMatthias Ringwald  * *  Neither the name of Texas Instruments Incorporated nor the names of
17*5fd0122aSMatthias Ringwald  *    its contributors may be used to endorse or promote products derived
18*5fd0122aSMatthias Ringwald  *    from this software without specific prior written permission.
19*5fd0122aSMatthias Ringwald  *
20*5fd0122aSMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21*5fd0122aSMatthias Ringwald  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22*5fd0122aSMatthias Ringwald  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23*5fd0122aSMatthias Ringwald  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24*5fd0122aSMatthias Ringwald  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25*5fd0122aSMatthias Ringwald  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26*5fd0122aSMatthias Ringwald  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27*5fd0122aSMatthias Ringwald  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28*5fd0122aSMatthias Ringwald  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29*5fd0122aSMatthias Ringwald  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30*5fd0122aSMatthias Ringwald  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*5fd0122aSMatthias Ringwald  * --/COPYRIGHT--*/
32*5fd0122aSMatthias Ringwald #ifndef __GPIO_H__
33*5fd0122aSMatthias Ringwald #define __GPIO_H__
34*5fd0122aSMatthias Ringwald 
35*5fd0122aSMatthias Ringwald //*****************************************************************************
36*5fd0122aSMatthias Ringwald //
37*5fd0122aSMatthias Ringwald //! \addtogroup gpio_api
38*5fd0122aSMatthias Ringwald //! @{
39*5fd0122aSMatthias Ringwald //
40*5fd0122aSMatthias Ringwald //*****************************************************************************
41*5fd0122aSMatthias Ringwald 
42*5fd0122aSMatthias Ringwald //*****************************************************************************
43*5fd0122aSMatthias Ringwald //
44*5fd0122aSMatthias Ringwald // If building with a C++ compiler, make all of the definitions in this header
45*5fd0122aSMatthias Ringwald // have a C binding.
46*5fd0122aSMatthias Ringwald //
47*5fd0122aSMatthias Ringwald //*****************************************************************************
48*5fd0122aSMatthias Ringwald #ifdef __cplusplus
49*5fd0122aSMatthias Ringwald extern "C"
50*5fd0122aSMatthias Ringwald {
51*5fd0122aSMatthias Ringwald #endif
52*5fd0122aSMatthias Ringwald 
53*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/inc/msp.h>
54*5fd0122aSMatthias Ringwald #include <stdint.h>
55*5fd0122aSMatthias Ringwald 
56*5fd0122aSMatthias Ringwald #define GPIO_PORT_P1                                                          1
57*5fd0122aSMatthias Ringwald #define GPIO_PORT_P2                                                          2
58*5fd0122aSMatthias Ringwald #define GPIO_PORT_P3                                                          3
59*5fd0122aSMatthias Ringwald #define GPIO_PORT_P4                                                          4
60*5fd0122aSMatthias Ringwald #define GPIO_PORT_P5                                                          5
61*5fd0122aSMatthias Ringwald #define GPIO_PORT_P6                                                          6
62*5fd0122aSMatthias Ringwald #define GPIO_PORT_P7                                                          7
63*5fd0122aSMatthias Ringwald #define GPIO_PORT_P8                                                          8
64*5fd0122aSMatthias Ringwald #define GPIO_PORT_P9                                                          9
65*5fd0122aSMatthias Ringwald #define GPIO_PORT_P10                                                         10
66*5fd0122aSMatthias Ringwald #define GPIO_PORT_PA                                                           1
67*5fd0122aSMatthias Ringwald #define GPIO_PORT_PB                                                           3
68*5fd0122aSMatthias Ringwald #define GPIO_PORT_PC                                                           5
69*5fd0122aSMatthias Ringwald #define GPIO_PORT_PD                                                           7
70*5fd0122aSMatthias Ringwald #define GPIO_PORT_PE                                                           9
71*5fd0122aSMatthias Ringwald #define GPIO_PORT_PJ                                                          11
72*5fd0122aSMatthias Ringwald 
73*5fd0122aSMatthias Ringwald 
74*5fd0122aSMatthias Ringwald #define GPIO_PIN0                                                      (0x0001)
75*5fd0122aSMatthias Ringwald #define GPIO_PIN1                                                      (0x0002)
76*5fd0122aSMatthias Ringwald #define GPIO_PIN2                                                      (0x0004)
77*5fd0122aSMatthias Ringwald #define GPIO_PIN3                                                      (0x0008)
78*5fd0122aSMatthias Ringwald #define GPIO_PIN4                                                      (0x0010)
79*5fd0122aSMatthias Ringwald #define GPIO_PIN5                                                      (0x0020)
80*5fd0122aSMatthias Ringwald #define GPIO_PIN6                                                      (0x0040)
81*5fd0122aSMatthias Ringwald #define GPIO_PIN7                                                      (0x0080)
82*5fd0122aSMatthias Ringwald #define GPIO_PIN8                                                      (0x0100)
83*5fd0122aSMatthias Ringwald #define GPIO_PIN9                                                      (0x0200)
84*5fd0122aSMatthias Ringwald #define GPIO_PIN10                                                     (0x0400)
85*5fd0122aSMatthias Ringwald #define GPIO_PIN11                                                     (0x0800)
86*5fd0122aSMatthias Ringwald #define GPIO_PIN12                                                     (0x1000)
87*5fd0122aSMatthias Ringwald #define GPIO_PIN13                                                     (0x2000)
88*5fd0122aSMatthias Ringwald #define GPIO_PIN14                                                     (0x4000)
89*5fd0122aSMatthias Ringwald #define GPIO_PIN15                                                     (0x8000)
90*5fd0122aSMatthias Ringwald #define PIN_ALL8                                                       (0xFF)
91*5fd0122aSMatthias Ringwald #define PIN_ALL16                                                      (0xFFFF)
92*5fd0122aSMatthias Ringwald 
93*5fd0122aSMatthias Ringwald #define GPIO_PRIMARY_MODULE_FUNCTION                                     (0x01)
94*5fd0122aSMatthias Ringwald #define GPIO_SECONDARY_MODULE_FUNCTION                                   (0x02)
95*5fd0122aSMatthias Ringwald #define GPIO_TERTIARY_MODULE_FUNCTION                                     (0x03)
96*5fd0122aSMatthias Ringwald 
97*5fd0122aSMatthias Ringwald #define GPIO_HIGH_TO_LOW_TRANSITION                                      (0x01)
98*5fd0122aSMatthias Ringwald #define GPIO_LOW_TO_HIGH_TRANSITION                                      (0x00)
99*5fd0122aSMatthias Ringwald 
100*5fd0122aSMatthias Ringwald #define GPIO_INPUT_PIN_HIGH                                              (0x01)
101*5fd0122aSMatthias Ringwald #define GPIO_INPUT_PIN_LOW                                               (0x00)
102*5fd0122aSMatthias Ringwald 
103*5fd0122aSMatthias Ringwald /* DriverLib internal GPIO register offset for optimized performance */
104*5fd0122aSMatthias Ringwald #define OFS_LIB_PAIN  ((uint32_t)&P1->IN - (uint32_t)P1)
105*5fd0122aSMatthias Ringwald #define OFS_LIB_PAOUT   ((uint32_t)&P1->OUT - (uint32_t)P1)
106*5fd0122aSMatthias Ringwald #define OFS_LIB_PADIR   ((uint32_t)&P1->DIR - (uint32_t)P1)
107*5fd0122aSMatthias Ringwald #define OFS_LIB_PAREN   ((uint32_t)&P1->REN - (uint32_t)P1)
108*5fd0122aSMatthias Ringwald #define OFS_LIB_PADS   ((uint32_t)&P1->DS - (uint32_t)P1)
109*5fd0122aSMatthias Ringwald #define OFS_LIB_PASEL0  ((uint32_t)&P1->SEL0 - (uint32_t)P1)
110*5fd0122aSMatthias Ringwald #define OFS_LIB_PASEL1  ((uint32_t)&P1->SEL1 - (uint32_t)P1)
111*5fd0122aSMatthias Ringwald #define OFS_LIB_PAIE    ((uint32_t)&P1->IE - (uint32_t)P1)
112*5fd0122aSMatthias Ringwald #define OFS_LIB_PAIES   ((uint32_t)&P1->IES - (uint32_t)P1)
113*5fd0122aSMatthias Ringwald #define OFS_LIB_PAIFG   ((uint32_t)&P1->IFG - (uint32_t)P1)
114*5fd0122aSMatthias Ringwald #define OFS_LIB_P1IE    ((uint32_t)&P1->IE - (uint32_t)P1)
115*5fd0122aSMatthias Ringwald #define OFS_LIB_P2IE    OFS_LIB_P1IE
116*5fd0122aSMatthias Ringwald 
117*5fd0122aSMatthias Ringwald //*****************************************************************************
118*5fd0122aSMatthias Ringwald //
119*5fd0122aSMatthias Ringwald // Prototypes for the APIs.
120*5fd0122aSMatthias Ringwald //
121*5fd0122aSMatthias Ringwald //*****************************************************************************
122*5fd0122aSMatthias Ringwald 
123*5fd0122aSMatthias Ringwald //*****************************************************************************
124*5fd0122aSMatthias Ringwald //
125*5fd0122aSMatthias Ringwald //! \brief This function configures the selected Pin as output pin
126*5fd0122aSMatthias Ringwald //!
127*5fd0122aSMatthias Ringwald //! This function selected pins on a selected port as output pins.
128*5fd0122aSMatthias Ringwald //!
129*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
130*5fd0122aSMatthias Ringwald //!        Valid values are:
131*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
132*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
133*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
134*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
135*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
136*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
137*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
138*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
139*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
140*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
141*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
142*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
143*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
144*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
145*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
146*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
147*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
148*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
149*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
150*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
151*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
152*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
153*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
154*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
155*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
156*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
157*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
158*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
159*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
160*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
161*5fd0122aSMatthias Ringwald //!
162*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register and bits of \b PxSEL register.
163*5fd0122aSMatthias Ringwald //!
164*5fd0122aSMatthias Ringwald //! \return None
165*5fd0122aSMatthias Ringwald //
166*5fd0122aSMatthias Ringwald //*****************************************************************************
167*5fd0122aSMatthias Ringwald extern void GPIO_setAsOutputPin(uint_fast8_t selectedPort,
168*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
169*5fd0122aSMatthias Ringwald 
170*5fd0122aSMatthias Ringwald //*****************************************************************************
171*5fd0122aSMatthias Ringwald //
172*5fd0122aSMatthias Ringwald //! \brief This function configures the selected Pin as input pin
173*5fd0122aSMatthias Ringwald //!
174*5fd0122aSMatthias Ringwald //! This function selected pins on a selected port as input pins.
175*5fd0122aSMatthias Ringwald //!
176*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
177*5fd0122aSMatthias Ringwald //!        Valid values are:
178*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
179*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
180*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
181*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
182*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
183*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
184*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
185*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
186*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
187*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
188*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
189*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
190*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
191*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
192*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
193*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
194*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
195*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
196*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
197*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
198*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
199*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
200*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
201*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
202*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
203*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
204*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
205*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
206*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
207*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
208*5fd0122aSMatthias Ringwald //!
209*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register, bits of \b PxREN register and bits of
210*5fd0122aSMatthias Ringwald //! \b PxSEL register.
211*5fd0122aSMatthias Ringwald //!
212*5fd0122aSMatthias Ringwald //! \return None
213*5fd0122aSMatthias Ringwald //
214*5fd0122aSMatthias Ringwald //*****************************************************************************
215*5fd0122aSMatthias Ringwald extern void GPIO_setAsInputPin(uint_fast8_t selectedPort,
216*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
217*5fd0122aSMatthias Ringwald 
218*5fd0122aSMatthias Ringwald //*****************************************************************************
219*5fd0122aSMatthias Ringwald //
220*5fd0122aSMatthias Ringwald //! \brief This function configures the peripheral module function in the
221*5fd0122aSMatthias Ringwald //! output direction for the selected pin for either primary, secondary or
222*5fd0122aSMatthias Ringwald //! ternary module function modes
223*5fd0122aSMatthias Ringwald //!
224*5fd0122aSMatthias Ringwald //! This function configures the peripheral module function in the output
225*5fd0122aSMatthias Ringwald //! direction for the selected pin for either primary, secondary or ternary
226*5fd0122aSMatthias Ringwald //! module function modes. Accepted values for mode are
227*5fd0122aSMatthias Ringwald //! GPIO_PRIMARY_MODULE_FUNCTION, GPIO_SECONDARY_MODULE_FUNCTION, and
228*5fd0122aSMatthias Ringwald //! GPIO_TERTIARY_MODULE_FUNCTION
229*5fd0122aSMatthias Ringwald //!
230*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
231*5fd0122aSMatthias Ringwald //!        Valid values are:
232*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
233*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
234*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
235*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
236*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
237*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
238*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
239*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
240*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
241*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
242*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
243*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
244*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
245*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
246*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
247*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
248*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
249*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
250*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
251*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
252*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
253*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
254*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
255*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
256*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
257*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
258*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
259*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
260*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
261*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
262*5fd0122aSMatthias Ringwald //! \param mode is the specified mode that the pin should be configured for the
263*5fd0122aSMatthias Ringwald //!        module function.
264*5fd0122aSMatthias Ringwald //!        Valid values are:
265*5fd0122aSMatthias Ringwald //!        - \b GPIO_PRIMARY_MODULE_FUNCTION
266*5fd0122aSMatthias Ringwald //!        - \b GPIO_SECONDARY_MODULE_FUNCTION
267*5fd0122aSMatthias Ringwald //!        - \b GPIO_TERTIARY_MODULE_FUNCTION
268*5fd0122aSMatthias Ringwald //!
269*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register and bits of \b PxSEL register.
270*5fd0122aSMatthias Ringwald //!
271*5fd0122aSMatthias Ringwald //! \return None
272*5fd0122aSMatthias Ringwald //
273*5fd0122aSMatthias Ringwald //*****************************************************************************
274*5fd0122aSMatthias Ringwald extern void GPIO_setAsPeripheralModuleFunctionOutputPin(
275*5fd0122aSMatthias Ringwald         uint_fast8_t selectedPort, uint_fast16_t selectedPins,
276*5fd0122aSMatthias Ringwald         uint_fast8_t mode);
277*5fd0122aSMatthias Ringwald 
278*5fd0122aSMatthias Ringwald //*****************************************************************************
279*5fd0122aSMatthias Ringwald //
280*5fd0122aSMatthias Ringwald //! \brief This function configures the peripheral module function in the input
281*5fd0122aSMatthias Ringwald //! direction for the selected pin for either primary, secondary or ternary
282*5fd0122aSMatthias Ringwald //! module function modes.
283*5fd0122aSMatthias Ringwald //!
284*5fd0122aSMatthias Ringwald //! This function configures the peripheral module function in the input
285*5fd0122aSMatthias Ringwald //! direction for the selected pin for either primary, secondary or ternary
286*5fd0122aSMatthias Ringwald //! module function modes. Accepted values for mode are
287*5fd0122aSMatthias Ringwald //! GPIO_PRIMARY_MODULE_FUNCTION, GPIO_SECONDARY_MODULE_FUNCTION, and
288*5fd0122aSMatthias Ringwald //! GPIO_TERTIARY_MODULE_FUNCTION
289*5fd0122aSMatthias Ringwald //!
290*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
291*5fd0122aSMatthias Ringwald //!        Valid values are:
292*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
293*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
294*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
295*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
296*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
297*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
298*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
299*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
300*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
301*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
302*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
303*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
304*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
305*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
306*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
307*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
308*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
309*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
310*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
311*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
312*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
313*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
314*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
315*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
316*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
317*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
318*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
319*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
320*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
321*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
322*5fd0122aSMatthias Ringwald //! \param mode is the specified mode that the pin should be configured for the
323*5fd0122aSMatthias Ringwald //!        module function.
324*5fd0122aSMatthias Ringwald //!        Valid values are:
325*5fd0122aSMatthias Ringwald //!        - \b GPIO_PRIMARY_MODULE_FUNCTION
326*5fd0122aSMatthias Ringwald //!        - \b GPIO_SECONDARY_MODULE_FUNCTION
327*5fd0122aSMatthias Ringwald //!        - \b GPIO_TERTIARY_MODULE_FUNCTION
328*5fd0122aSMatthias Ringwald //!
329*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register and bits of \b PxSEL register.
330*5fd0122aSMatthias Ringwald //!
331*5fd0122aSMatthias Ringwald //! \return None
332*5fd0122aSMatthias Ringwald //
333*5fd0122aSMatthias Ringwald //*****************************************************************************
334*5fd0122aSMatthias Ringwald extern void GPIO_setAsPeripheralModuleFunctionInputPin(
335*5fd0122aSMatthias Ringwald         uint_fast8_t selectedPort, uint_fast16_t selectedPins,
336*5fd0122aSMatthias Ringwald         uint_fast8_t mode);
337*5fd0122aSMatthias Ringwald 
338*5fd0122aSMatthias Ringwald //*****************************************************************************
339*5fd0122aSMatthias Ringwald //
340*5fd0122aSMatthias Ringwald //! \brief This function sets output HIGH on the selected Pin
341*5fd0122aSMatthias Ringwald //!
342*5fd0122aSMatthias Ringwald //! This function sets output HIGH on the selected port's pin.
343*5fd0122aSMatthias Ringwald //!
344*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
345*5fd0122aSMatthias Ringwald //!        Valid values are:
346*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
347*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
348*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
349*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
350*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
351*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
352*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
353*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
354*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
355*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
356*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
357*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
358*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
359*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
360*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
361*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
362*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
363*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
364*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
365*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
366*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
367*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
368*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
369*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
370*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
371*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
372*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
373*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
374*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
375*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
376*5fd0122aSMatthias Ringwald //!
377*5fd0122aSMatthias Ringwald //! Modified bits of \b PxOUT register.
378*5fd0122aSMatthias Ringwald //!
379*5fd0122aSMatthias Ringwald //! \return None
380*5fd0122aSMatthias Ringwald //
381*5fd0122aSMatthias Ringwald //*****************************************************************************
382*5fd0122aSMatthias Ringwald extern void GPIO_setOutputHighOnPin(uint_fast8_t selectedPort,
383*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
384*5fd0122aSMatthias Ringwald 
385*5fd0122aSMatthias Ringwald //*****************************************************************************
386*5fd0122aSMatthias Ringwald //
387*5fd0122aSMatthias Ringwald //! \brief This function sets output LOW on the selected Pin
388*5fd0122aSMatthias Ringwald //!
389*5fd0122aSMatthias Ringwald //! This function sets output LOW on the selected port's pin.
390*5fd0122aSMatthias Ringwald //!
391*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
392*5fd0122aSMatthias Ringwald //!        Valid values are:
393*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
394*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
395*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
396*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
397*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
398*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
399*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
400*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
401*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
402*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
403*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
404*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
405*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
406*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
407*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
408*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
409*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
410*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
411*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
412*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
413*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
414*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
415*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
416*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
417*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
418*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
419*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
420*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
421*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
422*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
423*5fd0122aSMatthias Ringwald //!
424*5fd0122aSMatthias Ringwald //! \return None
425*5fd0122aSMatthias Ringwald //
426*5fd0122aSMatthias Ringwald //*****************************************************************************
427*5fd0122aSMatthias Ringwald extern void GPIO_setOutputLowOnPin(uint_fast8_t selectedPort,
428*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
429*5fd0122aSMatthias Ringwald 
430*5fd0122aSMatthias Ringwald //*****************************************************************************
431*5fd0122aSMatthias Ringwald //
432*5fd0122aSMatthias Ringwald //! \brief This function toggles the output on the selected Pin
433*5fd0122aSMatthias Ringwald //!
434*5fd0122aSMatthias Ringwald //! This function toggles the output on the selected port's pin.
435*5fd0122aSMatthias Ringwald //!
436*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
437*5fd0122aSMatthias Ringwald //!        Valid values are:
438*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
439*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
440*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
441*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
442*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
443*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
444*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
445*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
446*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
447*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
448*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
449*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
450*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
451*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
452*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
453*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
454*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
455*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
456*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
457*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
458*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
459*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
460*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
461*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
462*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
463*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
464*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
465*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
466*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
467*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
468*5fd0122aSMatthias Ringwald //!
469*5fd0122aSMatthias Ringwald //! Modified bits of \b PxOUT register.
470*5fd0122aSMatthias Ringwald //!
471*5fd0122aSMatthias Ringwald //! \return None
472*5fd0122aSMatthias Ringwald //
473*5fd0122aSMatthias Ringwald //*****************************************************************************
474*5fd0122aSMatthias Ringwald extern void GPIO_toggleOutputOnPin(uint_fast8_t selectedPort,
475*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
476*5fd0122aSMatthias Ringwald 
477*5fd0122aSMatthias Ringwald //*****************************************************************************
478*5fd0122aSMatthias Ringwald //
479*5fd0122aSMatthias Ringwald //! \brief This function sets the selected Pin in input Mode with Pull Down
480*5fd0122aSMatthias Ringwald //! resistor
481*5fd0122aSMatthias Ringwald //!
482*5fd0122aSMatthias Ringwald //! This function sets the selected Pin in input Mode with Pull Down resistor.
483*5fd0122aSMatthias Ringwald //!
484*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
485*5fd0122aSMatthias Ringwald //!        Valid values are:
486*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
487*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
488*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
489*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
490*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
491*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
492*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
493*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
494*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
495*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
496*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
497*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
498*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
499*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
500*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
501*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
502*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
503*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
504*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
505*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
506*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
507*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
508*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
509*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
510*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
511*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
512*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
513*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
514*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
515*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
516*5fd0122aSMatthias Ringwald //!
517*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register, bits of \b PxOUT register and bits of
518*5fd0122aSMatthias Ringwald //! \b PxREN register.
519*5fd0122aSMatthias Ringwald //!
520*5fd0122aSMatthias Ringwald //! \return None
521*5fd0122aSMatthias Ringwald //
522*5fd0122aSMatthias Ringwald //*****************************************************************************
523*5fd0122aSMatthias Ringwald extern void GPIO_setAsInputPinWithPullDownResistor(uint_fast8_t selectedPort,
524*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
525*5fd0122aSMatthias Ringwald 
526*5fd0122aSMatthias Ringwald //*****************************************************************************
527*5fd0122aSMatthias Ringwald //
528*5fd0122aSMatthias Ringwald //! \brief This function sets the selected Pin in input Mode with Pull Up
529*5fd0122aSMatthias Ringwald //! resistor
530*5fd0122aSMatthias Ringwald //!
531*5fd0122aSMatthias Ringwald //! This function sets the selected Pin in input Mode with Pull Up resistor.
532*5fd0122aSMatthias Ringwald //!
533*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
534*5fd0122aSMatthias Ringwald //!        Valid values are:
535*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
536*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
537*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
538*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
539*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
540*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
541*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
542*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
543*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
544*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
545*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
546*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
547*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
548*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
549*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
550*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
551*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
552*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
553*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
554*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
555*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
556*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
557*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
558*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
559*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
560*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
561*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
562*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
563*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
564*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
565*5fd0122aSMatthias Ringwald //!
566*5fd0122aSMatthias Ringwald //! Modified bits of \b PxDIR register, bits of \b PxOUT register and bits of
567*5fd0122aSMatthias Ringwald //! \b PxREN register.
568*5fd0122aSMatthias Ringwald //!
569*5fd0122aSMatthias Ringwald //! \return None
570*5fd0122aSMatthias Ringwald //
571*5fd0122aSMatthias Ringwald //*****************************************************************************
572*5fd0122aSMatthias Ringwald extern void GPIO_setAsInputPinWithPullUpResistor(uint_fast8_t selectedPort,
573*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
574*5fd0122aSMatthias Ringwald 
575*5fd0122aSMatthias Ringwald //*****************************************************************************
576*5fd0122aSMatthias Ringwald //
577*5fd0122aSMatthias Ringwald //! \brief This function gets the input value on the selected pin
578*5fd0122aSMatthias Ringwald //!
579*5fd0122aSMatthias Ringwald //! This function gets the input value on the selected pin.
580*5fd0122aSMatthias Ringwald //!
581*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
582*5fd0122aSMatthias Ringwald //!        Valid values are:
583*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
584*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
585*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
586*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
587*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
588*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
589*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
590*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
591*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
592*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
593*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
594*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
595*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
596*5fd0122aSMatthias Ringwald //!        Valid values are:
597*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
598*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
599*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
600*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
601*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
602*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
603*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
604*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
605*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
606*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
607*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
608*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
609*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
610*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
611*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
612*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
613*5fd0122aSMatthias Ringwald //!
614*5fd0122aSMatthias Ringwald //! \return One of the following:
615*5fd0122aSMatthias Ringwald //!         - \b GPIO_INPUT_PIN_HIGH
616*5fd0122aSMatthias Ringwald //!         - \b GPIO_INPUT_PIN_LOW
617*5fd0122aSMatthias Ringwald //!         \n indicating the status of the pin
618*5fd0122aSMatthias Ringwald //
619*5fd0122aSMatthias Ringwald //*****************************************************************************
620*5fd0122aSMatthias Ringwald extern uint8_t GPIO_getInputPinValue(uint_fast8_t selectedPort,
621*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
622*5fd0122aSMatthias Ringwald 
623*5fd0122aSMatthias Ringwald //*****************************************************************************
624*5fd0122aSMatthias Ringwald //
625*5fd0122aSMatthias Ringwald //! \brief This function enables the port interrupt on the selected pin
626*5fd0122aSMatthias Ringwald //!
627*5fd0122aSMatthias Ringwald //! This function enables the port interrupt on the selected pin. Note that
628*5fd0122aSMatthias Ringwald //! only Port 1,2, A have this capability.
629*5fd0122aSMatthias Ringwald //!
630*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
631*5fd0122aSMatthias Ringwald //!        Valid values are:
632*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
633*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
634*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PA
635*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
636*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
637*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
638*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
639*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
640*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
641*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
642*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
643*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
644*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
645*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
646*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
647*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
648*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
649*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
650*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
651*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
652*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
653*5fd0122aSMatthias Ringwald //!
654*5fd0122aSMatthias Ringwald //! Modified bits of \b PxIE register.
655*5fd0122aSMatthias Ringwald //!
656*5fd0122aSMatthias Ringwald //! \return None
657*5fd0122aSMatthias Ringwald //
658*5fd0122aSMatthias Ringwald //*****************************************************************************
659*5fd0122aSMatthias Ringwald extern void GPIO_enableInterrupt(uint_fast8_t selectedPort,
660*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
661*5fd0122aSMatthias Ringwald 
662*5fd0122aSMatthias Ringwald //*****************************************************************************
663*5fd0122aSMatthias Ringwald //
664*5fd0122aSMatthias Ringwald //! \brief This function disables the port interrupt on the selected pin
665*5fd0122aSMatthias Ringwald //!
666*5fd0122aSMatthias Ringwald //! This function disables the port interrupt on the selected pin. Note that
667*5fd0122aSMatthias Ringwald //! only Port 1,2, A have this capability.
668*5fd0122aSMatthias Ringwald //!
669*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
670*5fd0122aSMatthias Ringwald //!        Valid values are:
671*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
672*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
673*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PA
674*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
675*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
676*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
677*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
678*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
679*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
680*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
681*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
682*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
683*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
684*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
685*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
686*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
687*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
688*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
689*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
690*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
691*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
692*5fd0122aSMatthias Ringwald //!
693*5fd0122aSMatthias Ringwald //! Modified bits of \b PxIE register.
694*5fd0122aSMatthias Ringwald //!
695*5fd0122aSMatthias Ringwald //! \return None
696*5fd0122aSMatthias Ringwald //
697*5fd0122aSMatthias Ringwald //*****************************************************************************
698*5fd0122aSMatthias Ringwald extern void GPIO_disableInterrupt(uint_fast8_t selectedPort,
699*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
700*5fd0122aSMatthias Ringwald 
701*5fd0122aSMatthias Ringwald //*****************************************************************************
702*5fd0122aSMatthias Ringwald //
703*5fd0122aSMatthias Ringwald //! \brief This function gets the interrupt status of the selected pin
704*5fd0122aSMatthias Ringwald //!
705*5fd0122aSMatthias Ringwald //! This function gets the interrupt status of the selected pin.
706*5fd0122aSMatthias Ringwald //!
707*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
708*5fd0122aSMatthias Ringwald //!        Valid values are:
709*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
710*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
711*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PA
712*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
713*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
714*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
715*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
716*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
717*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
718*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
719*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
720*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
721*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
722*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
723*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
724*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
725*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
726*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
727*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
728*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
729*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
730*5fd0122aSMatthias Ringwald //!
731*5fd0122aSMatthias Ringwald //! \return Logical OR of any of the following:
732*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN0
733*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN1
734*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN2
735*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN3
736*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN4
737*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN5
738*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN6
739*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN7
740*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN8
741*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN9
742*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN10
743*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN11
744*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN12
745*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN13
746*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN14
747*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN15
748*5fd0122aSMatthias Ringwald //!         \n indicating the interrupt status of the selected pins [Default:
749*5fd0122aSMatthias Ringwald //!         0]
750*5fd0122aSMatthias Ringwald //
751*5fd0122aSMatthias Ringwald //*****************************************************************************
752*5fd0122aSMatthias Ringwald extern uint_fast16_t GPIO_getInterruptStatus(uint_fast8_t selectedPort,
753*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
754*5fd0122aSMatthias Ringwald 
755*5fd0122aSMatthias Ringwald //*****************************************************************************
756*5fd0122aSMatthias Ringwald //
757*5fd0122aSMatthias Ringwald //! \brief This function clears the interrupt flag on the selected pin
758*5fd0122aSMatthias Ringwald //!
759*5fd0122aSMatthias Ringwald //! This function clears the interrupt flag on the selected pin.
760*5fd0122aSMatthias Ringwald //!
761*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
762*5fd0122aSMatthias Ringwald //!        Valid values are:
763*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
764*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
765*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PA
766*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
767*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
768*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
769*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
770*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
771*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
772*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
773*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
774*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
775*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
776*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
777*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
778*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
779*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
780*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
781*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
782*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
783*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
784*5fd0122aSMatthias Ringwald //!
785*5fd0122aSMatthias Ringwald //! Modified bits of \b PxIFG register.
786*5fd0122aSMatthias Ringwald //!
787*5fd0122aSMatthias Ringwald //! \return None
788*5fd0122aSMatthias Ringwald //
789*5fd0122aSMatthias Ringwald //*****************************************************************************
790*5fd0122aSMatthias Ringwald extern void GPIO_clearInterruptFlag(uint_fast8_t selectedPort,
791*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins);
792*5fd0122aSMatthias Ringwald 
793*5fd0122aSMatthias Ringwald //*****************************************************************************
794*5fd0122aSMatthias Ringwald //
795*5fd0122aSMatthias Ringwald //! \brief This function selects on what edge the port interrupt flag should be
796*5fd0122aSMatthias Ringwald //! set for a transition
797*5fd0122aSMatthias Ringwald //!
798*5fd0122aSMatthias Ringwald //! This function selects on what edge the port interrupt flag should be set
799*5fd0122aSMatthias Ringwald //! for a transition. Values for edgeSelect should be
800*5fd0122aSMatthias Ringwald //! GPIO_LOW_TO_HIGH_TRANSITION or GPIO_HIGH_TO_LOW_TRANSITION.
801*5fd0122aSMatthias Ringwald //!
802*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
803*5fd0122aSMatthias Ringwald //!        Valid values are:
804*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
805*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
806*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
807*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
808*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
809*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
810*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
811*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
812*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
813*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
814*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
815*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
816*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
817*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
818*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN0
819*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN1
820*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN2
821*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN3
822*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN4
823*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN5
824*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN6
825*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN7
826*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN8
827*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN9
828*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN10
829*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN11
830*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN12
831*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN13
832*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN14
833*5fd0122aSMatthias Ringwald //!        - \b GPIO_PIN15
834*5fd0122aSMatthias Ringwald //! \param edgeSelect specifies what transition sets the interrupt flag
835*5fd0122aSMatthias Ringwald //!        Valid values are:
836*5fd0122aSMatthias Ringwald //!        - \b GPIO_HIGH_TO_LOW_TRANSITION
837*5fd0122aSMatthias Ringwald //!        - \b GPIO_LOW_TO_HIGH_TRANSITION
838*5fd0122aSMatthias Ringwald //!
839*5fd0122aSMatthias Ringwald //! Modified bits of \b PxIES register.
840*5fd0122aSMatthias Ringwald //!
841*5fd0122aSMatthias Ringwald //! \return None
842*5fd0122aSMatthias Ringwald //
843*5fd0122aSMatthias Ringwald //*****************************************************************************
844*5fd0122aSMatthias Ringwald extern void GPIO_interruptEdgeSelect(uint_fast8_t selectedPort,
845*5fd0122aSMatthias Ringwald         uint_fast16_t selectedPins, uint_fast8_t edgeSelect);
846*5fd0122aSMatthias Ringwald 
847*5fd0122aSMatthias Ringwald //*****************************************************************************
848*5fd0122aSMatthias Ringwald //
849*5fd0122aSMatthias Ringwald //! \brief This function gets the interrupt status of the provided PIN and
850*5fd0122aSMatthias Ringwald //!         masks it with the interrupts that are actually enabled. This is
851*5fd0122aSMatthias Ringwald //!         useful for inside ISRs where the status of only the enabled
852*5fd0122aSMatthias Ringwald //!         interrupts needs to be checked.
853*5fd0122aSMatthias Ringwald //!
854*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
855*5fd0122aSMatthias Ringwald //!        Valid values are:
856*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P1
857*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P2
858*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P3
859*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P4
860*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P5
861*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P6
862*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P7
863*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P8
864*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P9
865*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P10
866*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_P11
867*5fd0122aSMatthias Ringwald //!        - \b GPIO_PORT_PJ
868*5fd0122aSMatthias Ringwald //!
869*5fd0122aSMatthias Ringwald //! \return Logical OR of any of the following:
870*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN0
871*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN1
872*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN2
873*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN3
874*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN4
875*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN5
876*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN6
877*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN7
878*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN8
879*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN9
880*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN10
881*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN11
882*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN12
883*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN13
884*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN14
885*5fd0122aSMatthias Ringwald //!         - \b GPIO_PIN15,
886*5fd0122aSMatthias Ringwald //!         - \b PIN_ALL8,
887*5fd0122aSMatthias Ringwald //!         - \b PIN_ALL16
888*5fd0122aSMatthias Ringwald //!         \n indicating the interrupt status of the selected pins [Default:
889*5fd0122aSMatthias Ringwald //!         0]
890*5fd0122aSMatthias Ringwald //
891*5fd0122aSMatthias Ringwald //*****************************************************************************
892*5fd0122aSMatthias Ringwald extern uint_fast16_t GPIO_getEnabledInterruptStatus(uint_fast8_t selectedPort);
893*5fd0122aSMatthias Ringwald 
894*5fd0122aSMatthias Ringwald 
895*5fd0122aSMatthias Ringwald //*****************************************************************************
896*5fd0122aSMatthias Ringwald //
897*5fd0122aSMatthias Ringwald //! Registers an interrupt handler for the port interrupt.
898*5fd0122aSMatthias Ringwald //!
899*5fd0122aSMatthias Ringwald //! \param selectedPort is the port to register the interrupt handler
900*5fd0122aSMatthias Ringwald //!
901*5fd0122aSMatthias Ringwald //! \param intHandler is a pointer to the function to be called when the port
902*5fd0122aSMatthias Ringwald //! interrupt occurs.
903*5fd0122aSMatthias Ringwald //!
904*5fd0122aSMatthias Ringwald //! This function registers the handler to be called when a port
905*5fd0122aSMatthias Ringwald //! interrupt occurs. This function enables the global interrupt in the
906*5fd0122aSMatthias Ringwald //! interrupt controller; specific GPIO interrupts must be enabled
907*5fd0122aSMatthias Ringwald //! via GPIO_enableInterrupt().  It is the interrupt handler's responsibility to
908*5fd0122aSMatthias Ringwald //! clear the interrupt source via GPIO_clearInterruptFlag().
909*5fd0122aSMatthias Ringwald //!
910*5fd0122aSMatthias Ringwald //! Clock System can generate interrupts when
911*5fd0122aSMatthias Ringwald //!
912*5fd0122aSMatthias Ringwald //! \sa Interrupt_registerInterrupt() for important information about
913*5fd0122aSMatthias Ringwald //! registering interrupt handlers.
914*5fd0122aSMatthias Ringwald //!
915*5fd0122aSMatthias Ringwald //! \return None.
916*5fd0122aSMatthias Ringwald //
917*5fd0122aSMatthias Ringwald //*****************************************************************************
918*5fd0122aSMatthias Ringwald extern void GPIO_registerInterrupt(uint_fast8_t selectedPort,
919*5fd0122aSMatthias Ringwald         void (*intHandler)(void));
920*5fd0122aSMatthias Ringwald 
921*5fd0122aSMatthias Ringwald //*****************************************************************************
922*5fd0122aSMatthias Ringwald //
923*5fd0122aSMatthias Ringwald //! Unregisters the interrupt handler for the port.
924*5fd0122aSMatthias Ringwald //!
925*5fd0122aSMatthias Ringwald //! \param selectedPort is the port to unregister the interrupt handler
926*5fd0122aSMatthias Ringwald //!
927*5fd0122aSMatthias Ringwald //! This function unregisters the handler to be called when a port
928*5fd0122aSMatthias Ringwald //! interrupt occurs.  This function also masks off the interrupt in the
929*5fd0122aSMatthias Ringwald //! interrupt controller so that the interrupt handler no longer is called.
930*5fd0122aSMatthias Ringwald //!
931*5fd0122aSMatthias Ringwald //! \sa Interrupt_registerInterrupt() for important information about
932*5fd0122aSMatthias Ringwald //! registering interrupt handlers.
933*5fd0122aSMatthias Ringwald //!
934*5fd0122aSMatthias Ringwald //! \return None.
935*5fd0122aSMatthias Ringwald //
936*5fd0122aSMatthias Ringwald //*****************************************************************************
937*5fd0122aSMatthias Ringwald extern void GPIO_unregisterInterrupt(uint_fast8_t selectedPort);
938*5fd0122aSMatthias Ringwald 
939*5fd0122aSMatthias Ringwald //*****************************************************************************
940*5fd0122aSMatthias Ringwald //
941*5fd0122aSMatthias Ringwald //! This function sets the drive strength to high for the selected port
942*5fd0122aSMatthias Ringwald //!
943*5fd0122aSMatthias Ringwald //!
944*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
945*5fd0122aSMatthias Ringwald //!             Valid values are:
946*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P1,
947*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P2,
948*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P3,
949*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P4,
950*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P5,
951*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P6,
952*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P7,
953*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P8,
954*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P9,
955*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P10,
956*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_PJ
957*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
958*5fd0122aSMatthias Ringwald //!             Valid values are:
959*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN0,
960*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN1,
961*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN2,
962*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN3,
963*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN4,
964*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN5,
965*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN6,
966*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN7,
967*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN8,
968*5fd0122aSMatthias Ringwald //!             - \b PIN_ALL8,
969*5fd0122aSMatthias Ringwald //!
970*5fd0122aSMatthias Ringwald //! \return None
971*5fd0122aSMatthias Ringwald //
972*5fd0122aSMatthias Ringwald //*****************************************************************************
973*5fd0122aSMatthias Ringwald extern void GPIO_setDriveStrengthHigh(uint_fast8_t selectedPort,
974*5fd0122aSMatthias Ringwald         uint_fast8_t selectedPins);
975*5fd0122aSMatthias Ringwald 
976*5fd0122aSMatthias Ringwald //*****************************************************************************
977*5fd0122aSMatthias Ringwald //
978*5fd0122aSMatthias Ringwald //! This function sets the drive strength to low for the selected port
979*5fd0122aSMatthias Ringwald //!
980*5fd0122aSMatthias Ringwald //!
981*5fd0122aSMatthias Ringwald //! \param selectedPort is the selected port.
982*5fd0122aSMatthias Ringwald //!             Valid values are:
983*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P1,
984*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P2,
985*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P3,
986*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P4,
987*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P5,
988*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P6,
989*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P7,
990*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P8,
991*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P9,
992*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_P10,
993*5fd0122aSMatthias Ringwald //!             - \b GPIO_PORT_PJ
994*5fd0122aSMatthias Ringwald //! \param selectedPins is the specified pin in the selected port.
995*5fd0122aSMatthias Ringwald //!             Valid values are:
996*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN0,
997*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN1,
998*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN2,
999*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN3,
1000*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN4,
1001*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN5,
1002*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN6,
1003*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN7,
1004*5fd0122aSMatthias Ringwald //!             - \b GPIO_PIN8,
1005*5fd0122aSMatthias Ringwald //!             - \b PIN_ALL8,
1006*5fd0122aSMatthias Ringwald //!
1007*5fd0122aSMatthias Ringwald //! \return None
1008*5fd0122aSMatthias Ringwald //
1009*5fd0122aSMatthias Ringwald //*****************************************************************************
1010*5fd0122aSMatthias Ringwald extern void GPIO_setDriveStrengthLow(uint_fast8_t selectedPort,
1011*5fd0122aSMatthias Ringwald         uint_fast8_t selectedPins);
1012*5fd0122aSMatthias Ringwald 
1013*5fd0122aSMatthias Ringwald /* Backwards Compatibility Layer */
1014*5fd0122aSMatthias Ringwald #define  GPIO_selectInterruptEdge       GPIO_interruptEdgeSelect
1015*5fd0122aSMatthias Ringwald #define  GPIO_clearInterrupt            GPIO_clearInterruptFlag
1016*5fd0122aSMatthias Ringwald 
1017*5fd0122aSMatthias Ringwald //*****************************************************************************
1018*5fd0122aSMatthias Ringwald //
1019*5fd0122aSMatthias Ringwald // Mark the end of the C bindings section for C++ compilers.
1020*5fd0122aSMatthias Ringwald //
1021*5fd0122aSMatthias Ringwald //*****************************************************************************
1022*5fd0122aSMatthias Ringwald #ifdef __cplusplus
1023*5fd0122aSMatthias Ringwald }
1024*5fd0122aSMatthias Ringwald #endif
1025*5fd0122aSMatthias Ringwald 
1026*5fd0122aSMatthias Ringwald //*****************************************************************************
1027*5fd0122aSMatthias Ringwald //
1028*5fd0122aSMatthias Ringwald // Close the Doxygen group.
1029*5fd0122aSMatthias Ringwald //! @}
1030*5fd0122aSMatthias Ringwald //
1031*5fd0122aSMatthias Ringwald //*****************************************************************************
1032*5fd0122aSMatthias Ringwald 
1033*5fd0122aSMatthias Ringwald #endif // __GPIO_H__
1034