This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
請教
主頻為 : 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及恢復正常中斷時間
請問有什麼可能??
以上再麻煩,有經驗人士,協助分析下
謝謝
没有想到有什么可能,硬件上应该毫无关系的。只能是怀疑你软件上有小bug了,僅有timer3a/b中段時間 會忽快忽慢,是因为其他中断优先级别高,所以优先执行其他中断导致的吧?把timer3a/b中断设置为最高优先级看看。
是,昨日使用中斷優先權get,
發現timer 8組全部都是0,可能是這原因的優先權造成
順便請教下
1. 在使用timer時,若不主動配置所有中斷的優先權是否全部中斷都默認為0??
2. 在interrupt.c裡 g_pui32Regs[] 用來設置中斷佔存器寫入的鏈結 , tm4c123g.h裡 有定義中斷名 比如 : #define INT_TIMER0A 35 // 16/32-Bit Timer 0A
疑問是 , 我知道在程序上是將TIMER0A 的 35 透過函數內位移到g_pui32Regs[] 裡面指定的中斷名 , 來達到 對TIMER0A 設置中斷優先權 ,但這部分TIMER0A 與 中斷名的對應 是從何而來?? 程序上是絕對的嗎 ?? 還是說 只要掌握使用方式 , TIMER0A 我可以任意設置指定 中斷0~63 任一一個呢?
以上
謝謝