CW32定時器及其中斷介紹
以CW32L083為例,其定時器分為6種:
基本定時器:CW32L083 內部集成 3 個基本定時器 (BTIM),每個 BTIM 完全獨立且功能完全相同,各包含一個 16bit 自動重裝 載計數器并由一個可編程預分頻器驅動。BTIM 支持定時器模式、計數器模式、觸發(fā)啟動模式和門控模式 4 種工作模式,支持溢出事件觸發(fā)中斷請求和 DMA 請求。得益于對觸發(fā)信號的精細處理設計,使得 BTIM 可以由硬件自 動執(zhí)行觸發(fā)信號的濾波操作,還能令觸發(fā)事件產生中斷和 DMA 請求。
低功耗定時器:CW32L083 內部集成 1 個 16 位低功耗定時器(LPTIM),可以以很低的功耗實現定時或對外部脈沖計數的功能。通過選擇合適的時鐘源和觸發(fā)信號,可以實現系統(tǒng)低功耗休眠時將MCU喚醒的功能。LPTIM 內部具有一個比較寄存器,可實現比較輸出和 PWM 輸出,并可以控制輸出波形的極性。此外,LPTIM 還可以與正交編碼器連接,自動 實現遞增計數和遞減計數。
通用定時器:CW32L083 內部集成 4 個通用定時器(GTIM),每個 GTIM 完全獨立且功能完全相同,各包含一個16bit 自動重 裝載計數器并由一個可編程預分頻器驅動。GTIM 支持定時器模式、計數器模式、觸發(fā)啟動模式和門控模式 4 種基本工作模式,每組帶4 路獨立的捕獲 / 比較通道,可以測量輸入信號的脈沖寬度(輸入捕獲)或者產生輸出波形(輸出比較和 PWM)。
高級定時器:高級定時器 (ATIM) 由一個 16 位的自動重載計數器和 7 個比較單元組成,并由一個可編程的預分頻器驅動。ATIM 支持 6 個獨立的捕獲 / 比較通道,可實現 6 路獨立 PWM 輸出或 3 對互補 PWM 輸出或對 6 路輸入進行捕獲???用于基本的定時 / 計數、測量輸入信號的脈沖寬度和周期、產生輸出波形(PWM、單脈沖、插入死區(qū)時間的互補 PWM 等)。
獨立看門狗定時器 (IWDT):CW32L083 內部集成獨立看門狗定時器 (IWDT),使用專門的內部 RC 時鐘源 RC10K,可避免運行時受到外部因素 影響。一旦啟動 IWDT,用戶需要在規(guī)定時間間隔內對 IWDT 的計數器進行重載,否則計數器溢出會觸發(fā)復位或 產生中斷信號。IWDT 啟動后,可停止計數??蛇x擇在深度休眠模式下 IWDT 保持運行或暫停計數。專門設置的鍵值寄存器,可以鎖定 IWDT 的關鍵寄存器,防止寄存器被意外修改。
窗口看門狗定時器 (WWDT):CW32L083 內部集成窗口看門狗定時器 (WWDT),用戶需要在設定的時間窗口內進行刷新,否則將觸發(fā)系統(tǒng)復位。WWDT 通常被用來監(jiān)測有嚴格時間要求的程序執(zhí)行流程,防止由外部干擾或未知條件造成應用程序的執(zhí)行異常, 導致發(fā)生系統(tǒng)故障。
01
CW32定時器中斷
定時器中斷是由CW32中的定時器引起的中斷,所謂中斷就是程序正常順序執(zhí)行的時候,出現了突發(fā)事件,CPU停止當前的程序的執(zhí)行,轉去處理突發(fā)事件,處理完畢后又返回原程序被中斷的位置繼續(xù)執(zhí)行。
02
CW32定時器中斷源
定時器主要中斷源包括如下:
基本定時器(BTIM):?計數器(ARR/TOP)溢出中斷、計數器觸發(fā)中斷。
低功耗定時器(LPTIM): 計數方向反向中斷、ARR更新完成中斷、比較寄存器更新完成中斷、計數器觸發(fā)中斷、ARR自動重載匹配中斷、比較匹配中斷。
通用定時器(GTIM):?編碼器計數方向變化中斷、CHx捕獲比較中斷、計數器下溢中斷、計數器觸發(fā)中斷、計數器ARR溢出中斷。
高級定時器(ATIM):?CHxA/B捕獲比較中斷、CHxA/B捕獲數據丟失中斷、計數器上溢中斷、計數器下溢中斷、剎車中斷、CH4比較匹配中斷、事件更新中斷。
更新事件, 觸發(fā)事件。
獨立看門狗定時器(IWDT):?計數器溢出中斷。
窗口看門狗定時器(WWDT):計數器溢出中斷。
各中斷源的含義詳細描述參見對應產品的用戶手冊內容。
03
實際操作
以CW32L083為例,控制基本定時器BTIM1以固定的時間間隔產生中斷,并在ARR溢出中斷中控制口線電平翻轉。
1. RCC時鐘初始化
2.初始化GPIO口
3.配置嵌套矢量中斷控制器
4.主函數
5.中斷函數:PB08輸出翻轉
6.實驗驗證
示波器檢測PB08口的信號輸出,示波器波形圖呈周期性翻轉。