welcom ! Handel home

2014年6月23日 星期一

ST32 Timer note

TimerST

[ TIMx_PSC ] : 預除頻器REG (16bit)
[ TIMx_CNT ]:  Timx 計數count Reg(16bit)
[ TIMx_ARR ]:  counter AutoReload Reg(16bit)
[ TIMx_CR1 ]:  Timx control Flag  
[ TIMx_DIER ]  Timx Interrupt control Flag
[ TIMx_SR ]:   Timx Int Flag










啟動 Timer Interrupt 步驟
1: TIMx timer 啟動規劃 STm32_Clock_Init 系統時序設定
  APB1 or APB2
2: setup TIMx_ARR and TIMx_PSC 確認 CNT clock source and autoReload value
3: Setup TIMx_DIER  enable the TIMX Int
4: Enable the TIMx Startup for count
5: TIMx Int NVIC setup
6:edit the Code by TIMX IRQ  





STM32F103xx增強型系列產品中內置了多達3個同步的標準計時器。
每個計時器都有一個16位的自動載入遞加/遞減計數器(TIMx_CNT)、一個16位的預分頻器(TIMX_PSC )4個獨立的通道,每個通道都可用於[輸入捕獲][輸出比較][PWM][單脈衝模式輸出],在最大的封裝配置中可提供最多12個輸入捕獲、輸出比較或PWM通道。它們還能通過計時器連結功能與高級控制計時器共同工作,提供同步或事件連結功能。  
在調試模式下,計數器可以被凍結。任一個標準計時器都能用於產生PWM輸出。每個計時器都有獨立的DMA請求機制。

[  高級控制計時器 ]
 高級控制計時器(TIM1)由一個 16位的自動裝載計數器組成,它由一個可程式設計預分頻器驅動。它適合多種用途,包含測量輸入信號的脈衝寬度(輸入捕獲),或者產生輸出波形(輸出比較,PWM,嵌入死區時間的互補 PWM)   
使用計時器預分頻器和 RCC時鐘控制預分頻器,可以實現脈衝寬度和波形週期從幾個微秒至幾個毫秒的調節。高級控制(TIM1)和通用(TIMx)計時器是完全
獨立的,它們不共用任何資源,它們可以同步操作。   

高級控制計時器(TIM1)可以被看成是一個分配到6個通道的三相PWM發生器,它還可以被當成一個完整的通用計時器。
四個獨立的通道可以用於:     
·輸入捕獲     
·輸出比較  
 ·產生PWM(邊緣或中心對齊模式    
·單脈衝輸出  
·反相PWM輸出,具有程式可控的死區插入功能;  




  配置為16位元標準計時器時,它與TIMx定時器具有相同的功能。配置為16位元PWM發生器時,它具有全調製能力(0~100%)  
在調試模式下,計數器可以被凍結。很多功能都與標準的TIM計時器相同,內部結構也相同,因此高級控制計時器可以通過計時器連結功能與TIM計時器協同操作,提供同步或事件連結功能。 TIM1 計時器的功能包括:  
 = 16位上,下,上/下自動裝載計數器  
= 16位元可程式設計預分頻器,計數器時鐘頻率的分頻係數為 165535之間的任意數值;  
=4個獨立通道:  
輸入捕獲  
輸出比較;  
−PWM生成(邊緣或中間對齊模式)  
單脈衝模式輸出  
  −死區時間可程式設計的互補輸出。  
=使用外部信號控制計時器和計時器互連的同步電路;  
=在指定數目的計數器週期之後更新計時器寄存器;  
=刹車輸入信號可以將計時器輸出信號置於重定模式或者一個已知狀態;  
=如下事件發生時產生中斷/DMA  
− 更新:計數器向上溢出/向下溢出,計數器初始化
(通過軟體或者內部/外部觸發)  
− 觸發事件(計數器啟動,停止,初始化或者由內部/外部觸發計數)   
− 輸入捕獲;  
− 輸出比較;  
− 刹車信號輸入。  





[ 時基單元 ] 
可程式設計高級控制計時器的主要部分是一個 16位元數目器和與其相關的自動裝載寄存器。
這個計數器可以向上計數、向下計數或者向上向下雙向計數。此計數器時鐘由預分頻器分頻得到。  
計數器、自動裝載寄存器和預分頻器寄存器可以由軟體讀寫,即使計數器還在運行讀寫仍然有效。   
時基單元包含:  
·計數器寄存器(TIM1_CNT)  
·預分頻器寄存器 (TIM1_PSC)  
·自動裝載寄存器 (TIM1_ARR)  
·週期計數寄存器 (TIM1_RCR)  

自動裝載寄存器是預先裝載的。寫或讀自動重裝載寄存器將訪問預裝載寄存器。根據在 TIM1_CR1寄存器中的自動裝載預裝載使能位(ARPE)的設置,預裝載寄存器的內容被永久地或在每次的更新事件 UEV時傳送到影子寄存器。當計數器達到溢出條件(向下計數時的下溢條件)並當 TIM1_CR1寄存器中的 UDIS位等於 0時,產生更新事件。更新事件也可以由軟體產生。隨後會詳細描述每一種配置下更新事件的產生。   
計數器由預分頻器的時鐘輸出 CK_CNT驅動,僅當設置了計數器 TIM1_CR1寄存器中的計數器使能位(CEN)時,CK_CNT才有效。(有關更多的計數器使能的細節,請參見控制器的從模式描述)   
注:真正的計數器使能信號 CNT_EN是在 CEN後的一個時鐘週期後被設置。  預分頻器描述  
預分頻器可以將計數器的時鐘頻率按 1 65536之間的任意值分頻。它是

基於一個( TIM1_PSC寄存器中的)16位寄存器控制的 16位元數目器。因為這個控制寄存器帶有緩衝器,它能夠在工作時被改變。新的預分頻器的參數在下一次更新事件到來時被採用。  

 2-4  2-5給出了一些在預分頻器工作時,更改其參數的情況下計數器操作的例子。





沒有留言: