- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I configured a complex GPIO for interrupt mode CY_U3P_GPIO_INTR_NEG_EDGE but never see the interrupt callback getting called. The firmware does load fine. I tested the same code on a simple GPIO configuration -- just changed complex to simple config and io matrix -- and the interrupt works fine. Any idea why the complex GPIO configuration won't work? Does something else need to be called/configured? The callback function is registered in GpioInit().
// complex configuration
gpioComplexConfig.outValue = CyTrue;
gpioComplexConfig.inputEn = CyTrue;
gpioComplexConfig.driveLowEn = CyFalse;
gpioComplexConfig.driveHighEn = CyFalse;
gpioComplexConfig.intrMode = CY_U3P_GPIO_INTR_NEG_EDGE;
gpioComplexConfig.pinMode = CY_U3P_GPIO_MODE_STATIC;
gpioComplexConfig.timerMode = CY_U3P_GPIO_TIMER_SHUTDOWN;
gpioComplexConfig.threshold = 0;
gpioComplexConfig.timer = 0;
gpioComplexConfig.period = 0;
status = CyU3PGpioSetComplexConfig(34, &gpioComplexConfig);
// register interrupt
status = CyU3PGpioInit(&gpioClock, GpioInterruptCallback);
// IO matrix
io_cfg.isDQ32Bit = CyFalse;
io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.useUart = CyTrue;
io_cfg.useI2C = CyFalse;
io_cfg.useI2S = CyFalse;
io_cfg.useSpi = CyTrue;
io_cfg.lppMode = CY_U3P_IO_MATRIX_LPP_DEFAULT;
io_cfg.gpioSimpleEn[0] = 0;
io_cfg.gpioSimpleEn[1] = 0;
io_cfg.gpioComplexEn[0] = 0;
io_cfg.gpioComplexEn[1] = 0x6;
status = CyU3PDeviceConfigureIOMatrix (&io_cfg);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We will check this internally and update you.
Regards,
-Madhu Sudhan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Madhu,
Any update on this issue?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Sorry for the delay. We tested and inferred that interrupts only work on simple gpios.
Regards,
-Madhu Sudhan