/** * @brief Enables the touch Panel interrupt. * @param None * @retval IOE_OK: if all initializations are OK. Other value if error. */ uint8_t IOE_TPITConfig(void) { /* Enable the Global interrupt */ IOE_GITCmd(ENABLE); /* Enable the Global GPIO Interrupt */ IOE_GITConfig((uint8_t)(IOE_GIT_TOUCH | IOE_GIT_FTH | IOE_GIT_FOV), ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_REG_GPIO_INT_STA); /* If all OK return IOE_OK */ return IOE_OK; }
/** * @brief Configures The selected interrupts on the IO Expanders. * @param IOE_ITSRC_Source: the source of the interrupts. Could be one or a * combination of the following parameters: * @arg IOE_ITSRC_JOYSTICK: Joystick IO intputs. * @arg IOE_ITSRC_TSC: Touch Screen interrupts. * @arg IOE_ITSRC_INMEMS: MEMS interrupt lines. * @retval IOE_OK: if all initializations are OK. Other value if error. */ uint8_t IOE_ITConfig(uint32_t IOE_ITSRC_Source) { /* Configure the Interrupt output pin to generate low level (INT_CTRL) */ IOE_ITOutConfig(Polarity_High, Type_Level); /* Manage the Touch Screen Interrupts */ if (IOE_ITSRC_Source & IOE_ITSRC_TSC) { /* Enable the Global interrupt */ IOE_GITCmd(IOE_1_ADDR, ENABLE); /* Enable the Global GPIO Interrupt */ IOE_GITConfig(IOE_1_ADDR, (uint8_t)(IOE_GIT_TOUCH | IOE_GIT_FTH), ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_1_ADDR, IOE_REG_GPIO_INT_STA); } /* Configure the Interrupt line as EXTI source */ IOE_EXTI_Config(); /* If all OK return IOE_OK */ return IOE_OK; }
/** * @brief Configures The selected interrupts on the IO Expanders. * @param IOE_ITSRC_Source: the source of the interrupts. Could be one or a * combination of the following parameters: * @arg IOE_ITSRC_JOYSTICK: Joystick IO interrupts. * @arg IOE_ITSRC_TSC: Touch Screen interrupts. * @arg IOE_ITSRC_INMEMS: MEMS interrupt lines. * @retval IOE_OK: if all initializations are OK. Other value if error. */ uint8_t IOE_ITConfig(uint32_t IOE_ITSRC_Source) { /* Configure the Interrupt output pin to generate low level (INT_CTRL) */ IOE_ITOutConfig(Polarity_Low, Type_Level); /* Manage the Joystick Interrupts */ if (IOE_ITSRC_Source & IOE_ITSRC_JOYSTICK) { /* Enable the Global interrupt */ IOE_GITCmd(IOE_2_ADDR, ENABLE); /* Enable the Joystick pins to generate interrupt (GPIO_INT_EN) */ IOE_IOITConfig(IOE_2_ADDR, IOE_JOY_IT, ENABLE); /* Enable the Global GPIO Interrupt */ IOE_GITConfig(IOE_2_ADDR, IOE_GIT_GPIO, ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_2_ADDR, IOE_REG_GPIO_INT_STA); /* Enable the Joystick pins to generate interrupt */ IOE_IOITConfig(IOE_2_ADDR, IOE_JOY_IT, ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_2_ADDR, IOE_REG_GPIO_INT_STA); } /* Manage the MEMS Interrupts lines */ if (IOE_ITSRC_Source & IOE_ITSRC_INMEMS) { /* Enable the Global interrupt */ IOE_GITCmd(IOE_1_ADDR, ENABLE); /* Enable the pins to generate interrupt (GPIO_INT_EN) */ IOE_IOITConfig(IOE_1_ADDR, IOE_INMEMS_IT, ENABLE); /* Enable the Global GPIO Interrupt */ IOE_GITConfig(IOE_1_ADDR, IOE_GIT_GPIO, ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_1_ADDR, IOE_REG_GPIO_INT_STA); /* Enable the pins to generate interrupt */ IOE_IOITConfig(IOE_1_ADDR, IOE_INMEMS_IT, ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_1_ADDR, IOE_REG_GPIO_INT_STA); } /* Manage the Touch Screen Interrupts */ if (IOE_ITSRC_Source & IOE_ITSRC_TSC) { /* Enable the Global interrupt */ IOE_GITCmd(IOE_1_ADDR, ENABLE); /* Enable the Global GPIO Interrupt */ IOE_GITConfig(IOE_1_ADDR, (uint8_t)(IOE_GIT_TOUCH | IOE_GIT_FTH | IOE_GIT_FOV), ENABLE); /* Read the GPIO_IT_STA to clear all pending bits if any */ I2C_ReadDeviceRegister(IOE_1_ADDR, IOE_REG_GPIO_INT_STA); } /* Configure the Interrupt line as EXTI source */ IOE_EXTI_Config(); /* If all OK return IOE_OK */ return IOE_OK; }