中央對齊模式(Center-Aligned Mode)下,當配置為?模式3(CMS[1:0] = 11)?時,定時器會同時觸發?上溢中斷(ARR中斷)?和?下溢中斷(0中斷),即一個PWM周期內會有?兩次更新中斷。以下是關鍵總結:
??中央對齊模式3的中斷行為
中斷類型 | 觸發條件 | 計數器動作 | 中斷標志 |
---|---|---|---|
上溢中斷 | 計數器達到?ARR ?(最大值) | 遞增 → 遞減 | UIF ?(更新中斷標志) |
下溢中斷 | 計數器達到?0 ?(最小值) | 遞減 → 遞增 | UIF ?(更新中斷標志) |
結果:
每個PWM周期觸發兩次更新中斷,分別對應計數器在三角波的波峰(ARR)和波谷(0)。
???關鍵配置
-
模式選擇:
TIMx->CR1 |= TIM_CR1_CMS; // CMS[1:0]=11 (模式3)
-
模式1/2:僅單次中斷(上溢或下溢)。
-
模式3:雙次中斷(上溢+下溢)。
-
-
中斷使能:
需同時開啟更新中斷:TIMx->DIER |= TIM_DIER_UIE; // 使能更新中斷
🔄?中斷服務函數(ISR)處理
在中斷函數中需:
-
檢查中斷標志:
if (TIMx->SR & TIM_SR_UIF) { // 檢查更新中斷標志// 處理邏輯 }
-
區分上下溢:
通過計數方向標志?TIMx_CR1.DIR
?判斷當前狀態:if (TIMx->CR1 & TIM_CR1_DIR) { // DIR=1: 遞減階段 → 觸發下溢中斷 (計數器到0) } else {// DIR=0: 遞增階段 → 觸發上溢中斷 (計數器到ARR) }
-
清除標志位:
TIMx->SR &= ~TIM_SR_UIF; // 清除中斷標志
📊?應用場景
需求 | 推薦模式 | 中斷次數 |
---|---|---|
需要精確控制PWM對稱性 | 模式3 | 2次/周期 |
降低CPU中斷負載 | 模式1或2 | 1次/周期 |
實時更新PWM占空比 | 模式3 | 雙時機同步 |
💡?重要提醒
-
中斷頻率翻倍:
若PWM頻率為10kHz,模式3的中斷頻率為?20kHz,需確保ISR執行時間足夠短。 -
占空比更新時機:
在?上溢中斷(ARR)?中更新占空比(CCRx
),可確保下一周期生效,避免脈沖斷裂。 -
硬件資源消耗:
雙中斷模式會顯著增加CPU負載,在復雜系統中需評估性能瓶頸。