完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用一个32位定时器通过和谐配置,在中断MODEtiME被配置为5US间隔。但是,我的ISR 'RunuTask'()需要比5s长才能完成。我知道这很糟糕。我的问题是:通常我看到范围上的LED信号,LED=1的两个上升沿之间的间隔应该是5us,但是如果“run_task()”花费的时间比5us长。间隔时间变长,比如说5.3US。就好像进入中断程序也停止计时器时钟向前计数,这是奇怪的。请帮助…
|
|
相关推荐
5个回答
|
|
为什么这令人惊讶?ISR不能触发,直到它退出,如果它需要比定时器间隔更长的时间,它将被延迟。
|
|
|
|
是的,我能理解中断被禁用,直到ISR退出。(顺便说一下,没有禁止中断的显式代码,我假设这是预期的行为。)令人惊讶的是,为什么下一个中断在5.4us之后发生,为什么不在10us之后发生?我想每个时钟都会触发计时器中断。第一次,它触发,我的ISR运行。后来,因为我的ISR还没有完成,所以被忽略了。后来,它又触发了。所以我的ISR应该间隔在10US,整数倍的5US,5.4US从哪里来?
|
|
|
|
它没有被禁用。中断不会中断或中断相同或低优先级。中断标志是每5uSec设置一次。这意味着一旦离开中断,您将返回权限。
|
|
|
|
计时器继续运行,在5秒之后,再次设置定时器待定中断标志。当你的ISR退出时,CPU注意到有一个中断等待并立即触发ISR。如果更改程序以在主循环中切换另一个管脚,则应该看不到该管脚上的任何活动,因为CPU只有时间为中断提供服务。
|
|
|
|
不被忽略,但排队和推迟。如果你想忽略它,清除你的ISR程序结束时的中断标志。
|
|
|
|
只有小组成员才能发言,加入小组>>
5237 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3201 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
660浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 06:47 , Processed in 1.285775 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号