完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
你好,我用的是PIC24FJ128GA310。我正在尝试使用32位定时器(time2和3)来进行大延迟/计数。下面是我的32位定时器的配置代码。当我使用这个计时器作为延迟的目的时,它工作得很好,但是当我尝试使用同一个定时器来实现超时的目的时,即设置定时器值进入循环做。当时间匹配中断占用循环或在下面的EXP中设置定时器和等待UART接收。超时值不会每次都出现。如果设置为15秒,有时它会在11秒或17秒超时。请给出建议使用超时时间来定制时间。
|
|
相关推荐
12个回答
|
|
|
但是一旦TMR匹配的周期寄存器的值,我可以清除它,并且如果我再次想要计时器,再次设置它,是不是正确?你有什么建议?现在我每次都清理它,然后再把它放在我想要的任何时间。
|
|
|
|
|
|
如果您看到我发布的示例,如果响应在超时之前收到,那么我正在使用._Timer32bit()清除计时器,但是当超时到达ISR时,ISR正在清除TMR寄存器,这是不正确的。我应该如何阻止ISR中的计时器?我的问题是,当我进入循环执行某个任务时,我没有得到适当的超时,但是当我只是等待让计时器达到周期值时,它工作得很好。
|
|
|
|
|
|
如果您还没有这样做,请将变量Time32位标志设置为易失性。我看不出它在哪儿定义。如果不定义并使用优化,则存在变量被本地放入寄存器中,处于紧密循环中,并且只测试寄存器的风险,而不会注意到实际变量和中断例程对它的更改。
|
|
|
|
|
|
|
|
|
|
|
|
首先仔细阅读第4和第6条,之后你可能会在论坛中搜索关键词“易失性”。
|
|
|
|
|
|
抱歉,麻烦了。我使用了volatile,并将变量设置为volatile char timer32_flag。它以适当的超时工作,除了第一次启动程序之外。对此有任何线索吗?我用0初始化这个值。
|
|
|
|
|
|
我想您还需要了解这些定时器的工作原理。您在RPx寄存器中设置了希望定时器计数的值。当您重置/启动定时器时,它将TMRx寄存器设置为0,然后硬件将TMRx寄存器递增,直到硬件比较器看到它与PRx寄存器值相同。通过这样做,硬件确保定时器将把IF标志设置为精确可重复的间隔。希望您现在看到不必自己重置TMRx寄存器。事实上,情况可能比这更糟——您的代码可能需要一些时间来识别设置了IF标志;或者ISR在启动代码之前触发并检查前导码。因此,每个硬件都将增加TMRX寄存器已经有(但可变的)机会。当您重置TMRx寄存器时,您有效地从设置IF位*.*之间的实际时间点再次开始计时(对于我刚才描述的所有细节,请参阅MCU数据表中的图13-1)。
|
|
|
|
|
|
谢谢大家的建议。我已经消除了对计时器的怀疑,苏珊!再次感谢。它现在工作得很好。
|
|
|
|
|
|
你好,上面的32位定时器对于较小的延迟工作正常,但是当我使用较大的延迟时:比如5分钟延迟:4分钟59秒,30分钟延迟,29分钟55秒。在我的程序中有问题吗?或者在使用定时器时有这么多的LAG是正常的吗?
|
|
|
|
|
|
你有FCY=4000000作为一个定义。所以,你运行在4MHz?为什么不是FCY=16MHZ内部XTAL或外部XTAL?对于小的值,OK看起来很好。如果内部XTAL不准确,在大定时器值上会出现很多问题。它可能会改变你每次运行它由于温度。(不应该假设一个确切的FCY)你怎么计算FoSC?M,N1,N2和调谐。你考虑过定时器的外部时钟源吗?您的芯片可以具有32MHz的FOSC,并且具有8MHz的内部xtal。在我当前使用的芯片上,FOSC是79.999722MHz,但是它具有愚蠢的7.37MHzxtal.XTAL 6844897、tune-19[-7.125%]、FOSC 79999722、M 187、N1 8、N2 2和.-278<-closest.XTAL 7950377、tune 21[7.875%]、FOSC 80000658,M 161,N1 8,N2 2,距离68.如果你需要精度,你需要一个更好的解决方案。
|
|
|
|
|
|
没有内部XTAL这样的东西,而是内部快速RC振荡器(FRC)。
|
|
|
|
|
|
我们知道,但我在解释准确性。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1123浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:57 , Processed in 1.011751 second(s), Total 96, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
7129