timer 中斷問題

2019-03-24 08:32发布

請教
主頻為 : 20MHz
timer0~3,共4個32bit
我將其拆成 timer0a/0b , timer1a/1b , timer2a/2b ,timer3a/3b ,每個皆為16bit
timer0a/0b = 1ms /100ms
timer1a/1b = 10ms /10ms
timer2a/2b = 100ms /200ms
timer3a/3b = 1ms /200ms
以上為各個timer中斷時間
共8個中斷,各自做各自的事
但發現,8個全開下,僅有timer3a/b中段時間 會忽快忽慢
但只要將timer0~2任一關閉,則timer3a/b及恢復正常中斷時間

請問有什麼可能??
timer也沒找到優先權相關設置

以上再麻煩,有經驗人士,協助分析下

謝謝
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
sint27
1楼-- · 2019-03-24 16:09
 精彩回答 2  元偷偷看……
nt52241930
2楼-- · 2019-03-24 17:04
< :TI_MSP430_内容页_SA7 -->
sint27 发表于 2017-5-17 11:21
这些中断的时间基准都是成倍数关系的,为什么不减少一些中断,使用变量累加来达到同样效果,比如在1ms中断 ...

是,沒錯
正確來說,以上8個timer,我只使用到6個,2個是直接關閉的

這是考慮到各功能的分離性與穩定性來做
這6個timer包含
2組 rs485
2組 can open
1組 i2c
實時的io 錯誤偵測
實時的 命令控制
及 同時的lcd/led 顯示

考慮到can 485...等等的裡面會使用while來做fifo的讀取
"萬一" 發生異常 while跑不出 會導致 後面的其他功能失效
....等等的
nt52241930
3楼-- · 2019-03-24 17:11
以解決,感謝
分享解決方式 :
修正8個timer 中斷優先權,即可解決

一周热门 更多>

相关问题

    相关文章