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