Hi. Cypress
想通过gpio 23号 配置成中断模式,但是示波器有检测到脉冲 宽度为70+us,但是程序里面并没有中断函数执行。所以,想确认下:
1.所有的gpio引脚都可以设置中断模式吗?
2.设置成中断模式的gpio,对脉冲宽度有要求吗?是否有说明或者标准多宽的脉冲才能产生中断函数执行
3.以下为我的初始化参数设置,是否有遗漏呢? 关键部分如下:
apiRetStatus = CyU3PDeviceGpioOverride(LT7211B_VOUT, CyTrue); //#define LT7211B_VOUT 23 //gpio
gpioConfig.outValue = CyFalse;
gpioConfig.inputEn = CyTrue;
gpioConfig.driveLowEn = CyFalse;
gpioConfig.driveHighEn = CyFalse;
gpioConfig.intrMode = CY_U3P_GPIO_INTR_POS_EDGE;
apiRetStatus = CyU3PGpioSetSimpleConfig(LT7211B_VOUT, &gpioConfig);
如果有相关这块的中断历程,不妨提供下作为参考,谢谢!
thanks
flance fang
Hi Flance,
回答您的问题:
1.所有GPIO都可以设置成simple GPIO 中断模式.
2.脉冲宽度只要不小于GPIO的时钟周期就可以。GPIO时钟最大频率为100.08 MHz.
3. GPIO设置为中断的例程可参考FX3 SDK中的GpioApp.从你的设置中没有看出问题。
Regards,
Eddie
Hi. Eddie
发现进行中断后只有一次中断(gpio中断注册函数如上次的 CyFx_GpioIntrCb,只调用一次), 后面就不产生了(调用的一次可能也是上电时候产生的)。 所以请教一下, 3065调用了中断函数是否需要手动清楚中断标志才可以触发下一次中断呢? 是否有相关的函数可以调用对相应中断标志清除
Hi Flance,
应该是不需要手动清除的。能否上传你们的代码呢?
Regards,
Eddie