完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想实现一个中断定时器,请问怎么实现?
我之前从资料上看到说,可以通过GPIO中断实现,但是并没能产生中断,下面是我的代码: // 初始化代码: CyU3PGpioClock_t gpioClock; CyU3PGpioComplexConfig_t gpioConfig; CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS; /* Init the GPIO module */ gpioClock.fastClkDiv = 2; gpioClock.slowClkDiv = 0; gpioClock.simpleDiv = CY_U3P_GPIO_SIMPLE_DIV_BY_2; gpioClock.clkSrc = CY_U3P_SYS_CLK; gpioClock.halfDiv = 0; apiRetStatus = CyU3PGpioInit( gpioClock, CyFxGpioIntrCb); CyU3PGpioComplexConfig_t gpioComplexConfig; gpioComplexConfig.outValue = CyFalse; gpioComplexConfig.inputEn = CyTrue; gpioComplexConfig.driveLowEn = CyFalse; gpioComplexConfig.driveHighEn = CyFalse; gpioComplexConfig.pinMode = CY_U3P_GPIO_MODE_STAtiC; gpioComplexConfig.intrMode = CY_U3P_GPIO_INTR_TIMER_THRES; gpioComplexConfig.timerMode = CY_U3P_GPIO_TIMER_POS_EDGE; gpioComplexConfig.timer = 0; gpioComplexConfig.period = 0x00000001; // Reset after each interrupt gpioComplexConfig.threshold = 0x00000001; //Generate interrupt every 125us apiRetStatus = CyU3PGpioSetComplexConfig(GPIO_TIMER, gpioComplexConfig); if (apiRetStatus != CY_U3P_SUCCESS) { vJackyTestPrintErr("CyU3PGpioSetComplexConfig failed: %dn",apiRetStatus); } /*****************************************************/ // 中断回调函数: /****************************************************/ void CyFxGpioIntrCb ( uint8_t gpioId /* Indicates the pin that triggered the interrupt */ ) { if(GPIO_TIMER == gpioId) { dwTimeCountNow++; if(dwTimeCountNow>TIME_COUNT_MAX) { dwTimeCountNow = 0; } } } /*******************************************/ // 请问如何才能产生timer 中断?如果GPIO可以做timer 中断,我的代码是否有问题啊? // 非常期待老师的回答 |
|
相关推荐
1个回答
|
|
gpioConfig.outValue = CyFalse;
gpioConfig.inputEn = CyTrue; gpioConfig.driveLowEn = CyFalse; gpioConfig.driveHighEn = CyFalse; gpioConfig.pinMode = CY_U3P_GPIO_MODE_STATIC; gpioConfig.intrMode = CY_U3P_GPIO_INTR_TIMER_THRES; gpioConfig.timerMode = CY_U3P_GPIO_TIMER_POS_EDGE; gpioConfig.timer = 0; gpioConfig.period = 0x00000001; gpioConfig.threshold = 0x00000001; apiRetStatus = CyU3PGpioSetComplexConfig(50, gpioConfig); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PGpioSetComplexConfig failed, error code = %dn", apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } void GPIO_Interrupt(uint8_t gpioId) { CyU3PGpioSetValue(21, CyTrue); CyU3PGpioSetValue(21, CyFalse); } |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2075 浏览 1 评论
1829 浏览 1 评论
3645 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1766 浏览 6 评论
1517 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
517浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
371浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
413浏览 2评论
360浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
868浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 16:50 , Processed in 0.843280 second(s), Total 46, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号