Hi,
I read GPIOTiva.c of TM4C1294 and I don't see the reason behind using the if condition in the code:
GPIO_PinConfig gpioPinConfigs[] = { /* Input pins */ /* EK_TM4C1294XL_USR_SW1 */ GPIOTiva_PJ_0 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING, /* EK_TM4C1294XL_USR_SW2 */ GPIOTiva_PJ_1 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING, /* Output pins */ /* EK_TM4C1294XL_USR_D1 */ GPIOTiva_PN_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW, /* EK_TM4C1294XL_USR_D2 */ GPIOTiva_PN_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW, }; ...... /*! * @brief 'Or' in this GPIO_PinConfig definition to inform GPIO_setConfig() * to only configure the interrupt attributes of a GPIO input pin. */ #define GPIO_CFG_IN_INT_ONLY (((uint32_t) 1) << 27) /*! configure interrupt only */ ...... void GPIO_setConfig(unsigned int index, GPIO_PinConfig pinConfig) { unsigned int key; Error_Block eb; Hwi_Params hwiParams; Hwi_Handle handle; uint32_t gpioBase; uint8_t gpioDirection; uint8_t gpioPin; uint8_t gpioPortIntIdx; uint32_t gpioPortIntBitMask; uint8_t gpioStrength; uint8_t gpioType; uint8_t gpioTypeIdx; GPIO_PinConfig gpioPinConfig; PinConfig *config = (PinConfig *) &GPIOTiva_config.pinConfigs[index]; gpioBase = getGpioBaseAddr(config->port); gpioPin = config->pin; if (!(pinConfig & GPIO_CFG_IN_INT_ONLY)) { /* Get GPIO configuration settings */ #if defined(TIVAWARE) gpioStrength = getGpioStrength(pinConfig); #endif gpioTypeIdx = getGpioTypeIndex(pinConfig);
I have browsed through GPIO chapter of
Tiva™ TM4C129XKCZAD Microcontroller
DATA SHEET
I want to know the GPIO settings with the source c file. Could you tell me the reason to use that mask (GPIO_CFG_IN_INT_ONLY) in the condition line?
Thanks,