完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,我试图重新启动一个周期性回调后,它完成了第一次通过。它第一次工作,然后调用CallbackStop。下次我发出SYS_TMR_Callback.ic以重新启动定时任务时,句柄总是返回0xFFFFFFFFFF(Invalid)。一旦停止,重新启动Callback.ic的正确过程是什么?这里添加了App_Tasks()函数:.(DatalogParams.state){case DATALOG_START: //如果(SYS_TMR_.(sysObj.sysTmr)==SYS_STATUS_READY){DatalogParams.callbackHandle=SYS_TMR_Callback.ic(Datalo).al*SECS_PER_MS,1,DatalogTask);SYS_CONSOLE_PRINT(“数据记录在进行中,剩余%d秒。rn”, DatalogParams..tion.);DatalogParams.state=DATALOG_ACTIVE;}break;case DATALOG_ACTIVE: //检查计数器,看是否完成了数据记录(DatalogParams..)。tion.==0){SYS_TMR_CallbackStop(DatalogParams.callbackHandle);DatalogParams.state=DATALOG_SEND_EMAIL;}case DATALOG_SEND_EMAIL: break;case DATALOG_INACTIVE:break;}Regards,Chuck
|
|
相关推荐
15个回答
|
|
|
嗨,恰克·巴斯,我可以知道你使用的是和声版本吗?对于我来说,它使用最新的和谐版本v1.07。SYS_TMR_Callback.ic是用于在停止之后重新启动Callback.ic的函数。
|
|
|
|
|
|
你第一次拿到把手了吗?检查一下把手是否有效?你的计时器池是否很小,所有的计时器都用完了?你应该能够一步一步地打电话,看看为什么会失败。
|
|
|
|
|
|
是的,计时器句柄正常工作一次。我的定时器池是我开始使用的演示应用程序的默认设置。目前我只使用一个定时回调,非常简单。我附上了定时器驱动程序和定时器系统服务配置的图片。看起来不错,但谁知道呢?扔出
|
|
|
|
|
|
你有1个把手。你还有其他需要计时器的服务吗?尝试增加手数。1,看看它是否失败了两次或工作。
|
|
|
|
|
|
嗯,你怎么知道只有1个把手?配置中的任何地方都没有提到句柄。这是定时器驱动程序中的1个步骤。我看到系统服务最多有5个定时器客户端。我将尝试更改定时器驱动程序实例,看看会发生什么。谢谢,Chuck
|
|
|
|
|
|
我增加到2个定时器驱动程序实例,并重新配置配置和应用程序没有用。同样的结果在第二尝试创建回调周期。也许这不是改变的正确设置?我在这里猜,因为没有什么可以说的,恰克·巴斯
|
|
|
|
|
|
我看到系统服务有5个定时器客户端MAX,也就是句柄的数量。一些和谐服务使用它们。你可能没有足够的。再加上1或2个,看看会发生什么。跟随调用进入查看表,看看使用什么。跟随关闭查看它是否被释放。跟随第二个打开,看看它为什么失败。
|
|
|
|
|
|
好吧,我试试看。谢谢!扔出
|
|
|
|
|
|
嗯,我在MHC中增加到7个定时器客户端并重建。运气不好,第二次电话总是失败。我总是犹豫是否要把任何东西称为和谐中的bug,但是它开始看起来像一个。也许其他人可以尝试相同的基本事物,看看它是否重复。
|
|
|
|
|
|
我知道您在定时器系统服务(MHC)中启用了“中断通知”,请尝试禁用“中断通知”。
|
|
|
|
|
|
好的,这只是因为Microchip在原始演示项目中启用了它。我会给它一个镜头!谢谢,恰克·巴斯
|
|
|
|
|
|
不,关闭定时器中断通知不起作用。这似乎是Harmony中的一个bug或者一个非常模糊的配置问题。我希望有人在他们的项目中尝试做同样的事情。谢谢,Chuck
|
|
|
|
|
|
我不确定我有时间。如果你没有回音,你可以在24小时后提交一个错误报告并打电话。
|
|
|
|
|
|
我理解并感谢你的帮助。我刚刚确信这不是Harmony中的bug,并且是某种程度上相关的tomy应用程序。我的应用程序基于wifi_._.,所以我回到那里,在App_Tasks()的末尾添加了与app.c类似的代码。在App_Tasks()如果(SYS_TMR_TickTickCountGet()-SYS_TMR_TickTickCouCouCountGetGetGet()-SYS_TMR_TickTasks()-SYS_Tasks()Tasks()结束,如果(SYS_TMR_TMR_TickTM_TickTickTickCountCountCountCountCountGetGet()--startTitTitTitTitTickCountGetGetGetGetGetGet()->>>>>>>>>>>>>_>>__>__LEDStateSet(A)ppptcpPIpLeqy3,LeDATA);} AppyOSalyMutExxunLoCube()/ /新代码来测试回调周期!如果(CalbRead句柄=0){SysSoSoLeSyPrimes(“回调开始”)rn”;callbackHandle=SYS_TMR_Callback.ic(500,0,callbackFunc);}if(callFlag==10){callFlag=0;SYS_CONSOLE_PRINT(“回调停止”!rn”;SYS_TMR_CallbackStop(callbackHandle);callbackHandle=0;}break;default:break;}void callbackFunc(uintptr_t上下文,uint32_t currTick){SYS_CONSOLE_PRINT(“Callback!rn";callFlag++;}//Endofcode.所以每500ms调用一次,Call就会触发,然后我在10次调用之后停止并重新启动它。每次都工作,没有SYS_TMR_HANDLE返回。在我的应用程序中一定有一些独特的东西导致了这种奇怪。我会继续查找的。抱歉,缺少代码格式,必须有更好的方式添加代码到示例后的剪切和粘贴!问候,恰克·巴斯
|
|
|
|
|
|
对不起,以前的帖子应该说:每次工作时都没有SysTyrMrHand,无效的返回。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
514 浏览 0 评论
5819 浏览 9 评论
2351 浏览 8 评论
2238 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3546 浏览 3 评论
1170浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1124浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
893浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
514浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 02:17 , Processed in 1.193046 second(s), Total 100, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2387