本帖最后由 kinshen 于 2018-12-2 21:53 编辑
有2个定时器,TIM2做10ms定时中断,在中断里做模式控制,另外一个中断是TIM5捕获中断,测量外部脉冲的频率。
TIM2单独工作的时候,没有问题!
加上TIM5的时候,会出现程序进不来主程序的情况!但是这个时候不固定,有的时候很快就跑飞,有的时候时间长点才跑飞!
TIM2和TIM5的配置如图(代码粘贴后注释是乱码,所以截图了)?
请帮忙分析下是什么原因!谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢,请问怎么能知道是堆栈出问题了?有没有什么方法来查看原因?
还有一个,如果只有一个中断的话没有重启的问题,2个的话就会出现,这个怎么分析?
TIM2的中断服务程序太长了,没有必要。
不就是每10ms执行一次按键扫描并进行模式判断和控制吗?
完全可以修改为:TIM2中只置10ms时间到的标志,然后在主循环中查询这个标志并执行这一大段程序。
当然,前提条件是你的主循环并不复杂,执行一遍主循环的时间不能太长。
好的,谢谢,我来试试
你好,请问,如果我只用一个定时器,中断里面程序还是比较多(执行时间只有1ms多点),定时器中断是10ms一次,而且我把堆栈调的比较大(0x2000),这样的话是不是可以避免堆栈的“压爆”问题?谢谢!
一周热门 更多>