MSP432定時器異常進捕獲中斷的問題

2021-10-24 07:20:33 字數 825 閱讀 5729

問題描述:

使用msp432定時器捕獲外接訊號的上公升沿,設斷點除錯時發現總是會進中斷服務函式,但是並沒有發生捕獲事件,該程式如下:

//ta0捕獲中斷

void

ta0_n_irqhandler

(void

)

bitband_peri

(timer_a_cmsis

(timer_a0_base)

->cctl[1]

,timer_a_cctln_cov_ofs)=0

;//軟體復位cov

清除cov標誌位。

器件手冊中是這麼描述cov位的:

大概意思就是說,如果在上一次捕獲的中斷標誌位還沒有清除,就發生了下一次捕獲,這時候cov就會被置位,cov位需要軟體復位!!!!

在上述程式裡,發生捕獲中斷後,先執行了幾句功能語句,才清除中斷標誌位,因此可能在執行功能語句時發生了第二次捕獲,導致cov位被置位,進而導致錯誤執行現象的產生。

但是坑爹的是,ti官方給的例程裡,沒有乙個是進行了cov位軟體復位的,而且甚至沒有軟體復位cov的庫函式??(所以我給出的那句話是用暫存器的方法寫的。。嗐)可是為什麼它還能正常執行呢?首先是因為例程中涉及的捕獲頻率不高,不過最重要的是,例程給出的都是一進中斷服務函式,就立馬清除了中斷標誌位,這樣就避免了cov被置位的發生,但是這麼做不符合常規的邏輯,畢竟咱們都是想先執行完這一次的捕獲邏輯,再進行下一次捕獲的。。。

msp430學習筆記之定時器A

1 定時器a 圖 1 定時器 a 2 定時器a 的四種計數模式 1.停止模式。2.增計數模式。產生兩個中斷標誌 當計數到跟taccr0 一樣的時候,就返回 0,重新計數。當計數到 taccr0 的同時產生乙個中斷標誌 ccifg 而當計數器溢位返回零的同時又同時產生乙個中斷標誌 taifg 如圖 圖...

MSP430 定時器輸出PWM波形

硬體介紹 msp430系列微控制器的timera結構複雜,功能強大,適合應用於工業控制,如數位化電機控制,電表和手持式儀表的理想配置。它給開發人員提供了較多靈活的選擇餘地。當pwm 不需要修改占空比和時間時,timera 能自動輸出pwm,而不需利用中斷維持pwm輸出。msp430f16x和msp4...

MSP430F5438 定時器總結

1.msp430f5438有三個定時器 ta0 ta1和tb,定時器的功能略有區別。2.對於定時器ta1而言,有兩個中斷向量位址,其中比較匹配通道0具有單獨的中斷向量 3.msp430中斷向量的名稱和ta0 ta1很難對應起來,需要通過中斷向量位址來確認。define timer1 a1 vecto...