ENTER TITLE基本定時器Basic timer (TIM6/TIM7)
01TIM6和TIM7簡介
基本定時器TIM6和TIM7各包含一個16位自動裝載計數器,由各自的可編程預分頻器驅動。這2個定時器是互相獨立的,不共享任何資源。
02主要特性
TIM6和TIM7定時器的主要功能包括:
①16位自動重裝載累加計數器;
②16位可編程(可實時修改)預分頻器,用于對輸入的時鐘按系數為1~65536之間的任意數值分頻器;
③在更新事件(計數器溢出)時產生中斷/DMA請求。
03功能
這個可編程定時器的主要部分是一個帶有自動重裝載的16位累加計數器,計數器的時鐘通過一個預分頻器得到。
軟件可以讀寫計數器、自動重裝載寄存器和預分頻寄存器,即使計數器運行時也可以操作。
自動重裝載寄存器是預加載的,每次讀寫自動重裝載寄存器時,實際上是通過讀寫預加載寄存器(Prescaler control register)實現。
當TIMx_CR1寄存器的UDIS位為’0’,則每當計數器達到溢出值時,硬件發出更新事件;軟件也可以產生更新事件。
根據TIMx_CR1寄存器中的自動重裝載預加載使能位(ARPE),寫入預加載寄存器的內容能夠立即或在每次更新事件時,傳送到它的影子寄存器。
計數器由預分頻輸出CK_CNT驅動,設置TIMx_CR1寄存器中的計數器使能位(CEN)使能計數器計數。
ENTER TITLE預分頻器(Prescaler description)
預分頻可以以系數介于1至65536之間的任意數值對計數器時鐘分頻。它是通過一個16位寄存器 (TIMx_PSC)的計數實現分頻。因為TIMx_PSC控制寄存器具有緩沖,可以在運行過程中改變它的數值,新的預分頻數值將在下一個更新事件時起作用。
預分頻系數從1變到2的計數器時序圖
ENTER TITLE計數模式
計數器從0累加計數到自動重裝載數值(TIMx_ARR寄存器),然后重新從0開始計數并產生一個計數器溢出事件。
每次計數器溢出時可以產生更新事件;(通過軟件或使用從模式控制器)設置TIMx_EGR寄存器的 UG位也可以產生更新事件。
設置TIMx_CR1中的UDIS位可以禁止產生UEV事件,這可以避免在寫入預加載寄存器時更改影子寄存器。在清除UDIS位為’0’之前,將不再產生更新事件,但計數器和預分頻器依然會在應產生更新事件時重新從0開始計數(但預分頻系數不變)。
另外,如果設置了TIMx_CR1寄存器中的 URS(選擇更新請求),設置UG位可以產生一次更新事件UEV,但不設置UIF標志(即沒有中斷或 DMA請求)。
當發生一次更新事件時,所有寄存器會被更新并(根據URS位)設置更新標志(TIMx_SR寄存器的UIF位):
● 傳送預裝載值(TIMx_PSC寄存器的內容)至預分頻器的緩沖區。
● 自動重裝載影子寄存器被更新為預裝載值(TIMx_ARR)。
以下是一些在TIMx_ARR=0x36時不同時鐘頻率下計數器工作的圖示例子。
計數器時序圖:
內部時鐘分頻系數為1
內部時鐘分頻系數為2
ENTER TITLE時鐘源
計數器的時鐘由內部時鐘(CK_INT)提供。
TIMx_CR1寄存器的CEN位和TIMx_EGR寄存器的UG位是實際的控制位,(除了UG位被自動清 除外)只能通過軟件改變它們。一旦置CEN位為’1’,內部時鐘即向預分頻器提供時鐘。下圖示出控制電路和向上計數器在普通模式下,沒有預分頻器時的操作。
ENTER TITLE調試模式
當微控制器進入調試模式(Cortex-M3核心停止)時,根據DBG模塊中的配置位DBG_TIMx_STOP 的設置,TIMx計數器或者繼續計數或者停止工作。
審核編輯 :李倩
-
寄存器
+關注
關注
31文章
5363瀏覽量
121155 -
計數器
+關注
關注
32文章
2261瀏覽量
94981 -
定時器
+關注
關注
23文章
3255瀏覽量
115367
原文標題:基于Stm32F030的基礎定時器(Basic timer)學習筆記1
文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論