女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

第二十二章 TIM——高級定時器

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-06-20 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網單片機

W55MH32是WIZnet重磅推出的高性能以太網單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內置高性能Arm? Cortex-M3核心,其主頻最高可達216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數據處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協議棧、內置MAC以及PHY,擁有獨立的32KB以太網收發(fā)緩存,可供8個獨立硬件socket使用。如此配置,真正實現了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN100和QFN68。

W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復雜工控場景設計。它擁有66個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、5個串口、2個SPI接口(其中1個帶I2S接口復用)、1個CAN、1個USB2.0以及1個SDIO接口。如此豐富的外設資源,能夠輕松應對工業(yè)控制中多樣化的連接需求,無論是與各類傳感器、執(zhí)行器的通信,還是對復雜工業(yè)協議的支持,都能游刃有余,成為復雜工控領域的理想選擇。 同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網關模組等場景,軟件使用方法一致。更多信息和資料請進入網站或者私信獲取。

此外,本W55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網絡通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數據線,就能輕松實現調試、下載以及串口打印日志等功能。開發(fā)板將所有外設全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細信息,包括產品特性、技術參數以及價格等,歡迎訪問官方網頁,我們期待與您共同探索W55MH32的無限可能。

wKgZPGgbOfaANhwzACodXd3sVzg463.png

第二十二章 TIM——高級定時器

本章參考資料:《W55MH32中文參考手冊》高級定時器章節(jié)。學習本章時,配合參考資料一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。

1 高級控制定時器

高級控制定時器(TIM1和TIM8)和通用定時器在基本定時器的基礎上引入了外部引腳,可以實現輸入捕獲和輸出比較功能。 高級控制定時器比通用定時器增加了可編程死區(qū)互補輸出、重復計數器、帶剎車(斷路)功能,這些功能都是針對工業(yè)電機控制方面。 這幾個功能在本書不做詳細的介紹,主要介紹常用的輸入捕獲和輸出比較功能。

高級控制定時器時基單元包含一個16位自動重裝載寄存器ARR,一個16位的計數器CNT,可向上/下計數,一個16位可編程預分頻器PSC, 預分頻器時鐘源有多種可選,有內部的時鐘、外部時鐘。還有一個8位的重復計數器RCR,這樣最高可實現40位的可編程定時。

W55MH32的高級/通用定時器的IO分配具體見下表,高級控制和通用定時器通道引腳分布 。配套開發(fā)板因為IO資源緊缺, 定時器的IO很多已經復用它途,故下表中的IO只有部分可用于定時器的實驗。

高級定時器 通用定時器
TIM1 TIM8 TIM2 TIM5 TIM3 TIM4
CH1 PA8/PE9 PC6 PA0/PA15 PA0 PA6/PC6/PB4 PB6/PD12
CH1N PB13/PA7/PE8 PA7
CH2 PA9/PE11 PC7 PA1/PB3 PA1 PA7/PC7/PB5 PB7/PD13
CH2N PB14/PB0/PE10 PB0
CH3 PA10/PE13 PC8 PA2/PB10 PA2 PB0/PC8 PB8/PD14
CH3N PB15/PB1/PE12 PB1
CH4 PA11/PE14 PC9 PA3/PB11 PA3 PB1/PC9 PB9/PD15
ETR PA12/PE7 PA0 PA0/PA15 PD2 PE0
BKIN PB12/PA6/PE15 PA6

2 高級控制定時器功能框圖

高級控制定時器功能框圖包含了高級控制定時器最核心內容,掌握了功能框圖,對高級控制定時器就有一個整體的把握,在編程時思路就非常清晰, 見下圖,圖中有些寄存器是帶影子的,表示其有影子寄存器:

wKgZPGgwQxmAVeFOAAQwwuHVaMQ809.png

2.1 時鐘選擇

計數器時鐘可由下列時鐘源提供:

內部時鐘(CK_INT)

外部時鐘模式 1:外部輸入引腳

外部時鐘模式 2:外部觸發(fā)輸入 ETR

內部觸發(fā)輸入(ITRx):使用一個定時器作為另一個定時器的預分頻器。如可以配置一個定時器 Timer1 而作為另一個定時器 Timer2 的預分頻器。

內部時鐘源(CK_INT):如果禁止了從模式控制器(SMS=000),則 CEN、DIR(TIMx_CR1 寄存器)和 UG 位(TIMx_EGR 寄存器)是事實上的控制位,并且只能被軟件修改(UG 位仍被自動清除)。只要 CEN 位被寫成'1',預分頻器的時鐘就由內部時鐘 CK_INT 提供。

下圖顯示控制電路和向上計數器在一般模式下,不帶預分頻器時的操作。

wKgZO2gwQxeAaJ9kAACr7t8R3bw363.png

外部時鐘源模式 1

當 TIMx_SMCR 寄存器的 SMS=111 時,此模式被選中。計數器可以在選定輸入端的每個上升沿或下降沿計數。

wKgZO2gwQxiAfPMJAAEQtm0yQm0301.png

例如,要配置向上計數器在 T12 輸入端的上升沿計數,使用下列步驟:配置 TIMx_CCMR1 寄存器CC2S=01,配置通道 2 檢測 TI2 輸入的上升沿。

配置TIMx_CCMR1寄存器的IC2F[3:0],選擇輸入濾波器帶寬(如果不需要濾波器,保持IC2F=0000)配置 TIMx_CCER 寄存器的 CC2P=0,選定上升沿極性W55MH32 參考手冊 V1.0.0 201/671配置 TIMx_SMCR 寄存器的 SMS=111,選擇定時器外部時鐘模式 1 配置 TIMx_SMCR 寄存器中的TS=110,選定 TI2 作為觸發(fā)輸入源設置 TIMx_CR1 寄存器的 CEN=1,啟動計數器。

注:捕獲預分頻器不用作觸發(fā),所以不需要對它進行配置

當上升沿出現在 TI2,計數器計數一次,且 TIF 標志被設置。在 TI2 的上升沿和計數器實際時鐘之間的延時,取決于在 TI2 輸入端的重新同步電路。

wKgZPGgwPCWAcHV3AADFO3BLFNA013.png

外部時鐘源模式 2

選定此模式的方法為:令 TIMx_SMCR 寄存器中的 ECE=1 計數器能夠在外部觸發(fā) ETR 的每一個上升沿或下降沿計數。

下圖是外部觸發(fā)輸入的框圖:

wKgZPGgwQxeAWXLxAAD8Ove-jfQ752.png

例如,要配置在 ETR 下每 2 個上升沿計數一次的向上計數器,使用下列步驟:本例中不需要濾波器,置 TIMx_SMCR 寄存器中的 ETF[3:0]=0000設置預分頻器,置 TIMx_SMCR 寄存器中的 ETPS[1:0]=01.選擇 ETR 的上升沿檢測,置 TIMx_SMCR 寄存器中的 ETP=0 開啟外部時鐘模式 2,寫 TIMx_SMCR寄存器中的 ECE=1.啟動計數器,寫 TIMx_CR1 寄存器中的 CEN=1 計數器在每 2 個 ETR 上升沿計數一次。在 ETR 的上升沿和計數器實際時鐘之間的延時取決于在 ETRP 信號端的重新同步電路。外部時鐘模式 2 下的控制電路如下圖:

wKgZPGgwQxeAFWVHAAB10aQgitc239.png

3.5 捕獲/比較通道

捕獲/比較通道(如:通道 1 輸入部分)如下圖:

wKgZO2gwQxeASoWvAAD2M2P5tjk445.png

輸出部分產生一個中間波形 OCxRef(高有效)作為基準,鏈的末端決定最終輸出信號的極性。

捕獲/比較通道 1 的主電路如下圖:

wKgZO2gwQxiASrl7AAE7JpLg684059.png

捕獲/比較通道的輸出部分(通道 1 至 3)如下圖:

wKgZO2gwQxiASrl7AAE7JpLg684059.png

捕獲/比較通道的輸出部分(通道 4)如下圖:

wKgZPGgwPCWAcHV3AADFO3BLFNA013.png

捕獲/比較模塊由一個預裝載寄存器和一個影子寄存器組成。讀寫過程僅操作預裝載寄存器。在捕獲模式下,捕獲發(fā)生在影子寄存器上,然后再復制到預裝載寄存器中。

在比較模式下,預裝載寄存器的內容被復制到影子寄存器中,然后影子寄存器的內容和計數器進行比較。

3.6 輸入捕獲模式

在輸入捕獲模式下,當檢測到 ICx 信號上相應的邊沿后,計數器的當前值被鎖存到捕獲/比較寄存器(TIMx_CCRx)中。當發(fā)生捕獲事件時,相應的 CCxIF 標志(TIMx_SR 寄存器)被置 1,如果開放了中斷或者 DMA 操作,則將產生中斷或者 DMA 請求。如果發(fā)生捕獲事件時 CCxIF 標志已經為高,那么重復捕獲標志 CCxOF(TIMx_SR 寄存器)被置 1。寫 CCxIF=0 可清除 CCxIF,或讀取存儲在TIMx_CCRx 寄存器中的捕獲數據也可清除 CCxIF。寫 CCxOF=0 可清除 CCxOF。

以下例子說明如何在 TI1 輸入的上升沿時捕獲計數器的值到 TIMx_CCR1 寄存器中,步驟如下:

選擇有效輸入端:TIMx_CCR1 必須連接到 TI1 輸入,所以寫入 TIMx_CCR1 寄存器中的CC1S=01,只要 CC1S 不為'00',通道被配置為輸入,并且 TIMx_CCR1 寄存器變?yōu)橹蛔x。

根據輸入信號的特點,配置輸入濾波器為所需的帶寬(即輸入為 TIx 時,輸入濾波器控制位是TIMx_CCMRx 寄存器中的 ICxF 位)。假設輸入信號在最多 5 個內部時鐘周期的時間內抖動,我們須配置濾波器的帶寬長于 5 個時鐘周期;因此我們可以(以 fDTS 頻率)連續(xù)采樣 8 次,以確認在 TI1 上一次真實的邊沿變換,即在 TIMx_CCMR1 寄存器中寫入 IC1F=0011。

選擇 TI1 通道的有效轉換邊沿,在 TIMx_CCER 寄存器中寫入 CC1P=0(上升沿)。

配置輸入預分頻器。在本例中,我們希望捕獲發(fā)生在每一個有效的電平轉換時刻,因此預分頻器被禁止(寫 TIMx_CCMR1 寄存器的 IC1PS=00)。

設置 TIMx_CCER 寄存器的 CC1E=1,允許捕獲計數器的值到捕獲寄存器中。

如果需要,通過設置TIMx_DIER寄存器中的CC1IE位允許相關中斷請求,通過設置TIMx_DIER寄存器中的 CC1DE 位允許 DMA 請求。

當發(fā)生一個輸入捕獲時:

產生有效的電平轉換時,計數器的值被傳送到 TIMx_CCR1 寄存器。

CC1IF 標志被設置(中斷標志)。當發(fā)生至少 2 個連續(xù)的捕獲時,而 CC1IF 未曾被清除,CC1OF也被置 1。

如設置了 CC1IE 位,則會產生一個中斷。

如設置了 CC1DE 位,則還會產生一個 DMA 請求。

為了處理捕獲溢出,建議在讀出捕獲溢出標志之前讀取數據,這是為了避免丟失在讀出捕獲溢出標志之后和讀取數據之前可能產生的捕獲溢出信息。

3.7 PWM 輸入模式

該模式是輸入捕獲模式的一個特例,除下列區(qū)別外,操作與輸入捕獲模式相同:

兩個 ICx 信號被映射至同一個 TIx 輸入。

這 2 個 ICx 信號為邊沿有效,但是極性相反。

其中一個 TIxFP 信號被作為觸發(fā)輸入信號,而從模式控制器被配置成復位模式。

例如,你需要測量輸入到 TI1 上的 PWM 信號的長度(TIMx_CCR1 寄存器)和占空比(TIMx_CCR2 寄存器),具體步驟如下(取決于 CK_INT 的頻率和預分頻器的值):

選擇 TIMx_CCR1 的有效輸入:置 TIMx_CCMR1 寄存器的 CC1S=01(選中 TI1)。

選擇 TI1FP1 的有效極性(用來捕獲數據到 TIMx_CCR1 中和清除計數器):置 CC1P=0(上升沿有效)。

選擇 TIMx_CCR2 的有效輸入:置 TIMx_CCMR1 寄存器的 CC2S=10(選中 TI1)。

選擇 TI1FP2 的有效極性(捕獲數據到 TIMx_CCR2):置 CC2P=1(下降沿有效)。

選擇有效的觸發(fā)輸入信號:置 TIMx_SMCR 寄存器中的 TS=101(選擇 TI1FP1)。

配置從模式控制器為復位模式:置 TIMx_SMCR 中的 SMS=100。

使能捕獲:置 TIMx_CCER 寄存器中 CC1E=1 且 CC2E=1。

PWM 輸入模式時序圖如下:

wKgZO2gwPCWAXVOPAADfcm6DNNc555.png

因為只有 TI1FP1 和 TI2FP2 連到了從模式控制器,所以 PWM 輸入模式只能使用TIMx_CH1/TIMx_CH2 信號。

3.8 輸出比較模式

此項功能是用來控制一個輸出波形,或者指示一段給定的的時間已經到時。當計數器與捕獲/比較寄存器的內容相同時,輸出比較功能做如下操作:

將輸出比較模式(TIMx_CCMRx 寄存器中的 OCxM 位)和輸出極性(TIMx_CCER 寄存器中的 CCxP位)定義的值輸出到對應的引腳上。在比較匹配時,輸出引腳可以保持它的電平(OCxM=000)、被設置成有效電平(OCxM=001)、被設置成無效電平(OCxM=010)或進行翻轉(OCxM=011)。

設置中斷狀態(tài)寄存器中的標志位(TIMx_SR 寄存器中的 CCxIF 位)。

若設置了相應的中斷屏蔽(TIMx_DIER 寄存器中的 CCxIE 位),則產生一個中斷。

若設置了相應的使能位(TIMx_DIER 寄存器中的 CCxDE 位,TIMx_CR2 寄存器中的 CCDS 位選擇 DMA 請求功能),則產生一個 DMA 請求。

TIMx_CCMRx 中的 OCxPE 位選擇 TIMx_CCRx 寄存器是否需要使用預裝載寄存器。在輸出比較模式下,更新事件 UEV 對 OCxREF 和 OCx 輸出沒有影響。

同步的精度可以達到計數器的一個計數周期。輸出比較模式(在單脈沖模式下)也能用來輸出一個單脈沖。

輸出比較模式的配置步驟:

1. 選擇計數器時鐘(內部,外部,預分頻器)。

2. 將相應的數據寫入 TIMx_ARR 和 TIMx_CCRx 寄存器中。

3. 如果要產生一個中斷請求,設置 CCxIE 位。

4. 選擇輸出模式,例如:

要求計數器與 CCRx 匹配時翻轉 OCx 的輸出引腳,設置 OCxM=011

置 OCxPE=0 禁用預裝載寄存器

置 CCxP=0 選擇極性為高電平有效

置 CCxE=1 使能輸出

5. 設置 TIMx_CR1 寄存器的 CEN 位啟動計數器

TIMx_CCRx 寄存器能夠在任何時候通過軟件進行更新以控制輸出波形,條件是未使用預裝載寄存器(OCxPE='0',否則 TIMx_CCRx 的影子寄存器只能在發(fā)生下一次更新事件時被更新)。下圖給出了一個例子:

wKgZO2gwQxeAZi7EAADP1P7jwb4272.png

3.9 PWM 模式

脈沖寬度調制模式可以產生一個由 TIMx_ARR 寄存器確定頻率、由 TIMx_CCRx 寄存器確定占空比的信號。

在 TIMx_CCMRx 寄存器中的 OCxM 位寫入'110'(PWM 模式 1)或'111'(PWM 模式 2),能夠獨立地設置每個 OCx 輸出通道產生一路 PWM。必須通過設置 TIMx_CCMRx 寄存器的 OCxPE 位使能相應的預裝載寄存器,最后還要設置 TIMx_CR1 寄存器的 ARPE 位,(在向上計數或中心對稱模式中)使能自動重裝載的預裝載寄存器。

僅當發(fā)生一個更新事件的時候,預裝載寄存器才能被傳送到影子寄存器,因此在計數器開始計數之前,必須通過設置 TIMx_EGR 寄存器中的 UG 位來初始化所有的寄存器。OCx 的極性可以通過軟件在 TIMx_CCER 寄存器中的 CCxP 位設置,它可以設置為高電平有效或低電平有效。OCx 的輸出使能通過(TIMx_CCER 和 TIMx_BDTR 寄存器中)CCxE、CCxNE、MOE、OSSI和 OSSR 位的組合控制。在 PWM 模式(模式 1 或模式 2)下,TIMx_CNT 和 TIMx_CCRx 始終在進行比較,(依據計數器的計數方向)以確定是否符合 TIMx_CCRx≤TIMx_CNT 或者 TIMx_CNT≤TIMx_CCRx。

根據 TIMx_CR1 寄存器中 CMS 位的狀態(tài),定時器能夠產生邊沿對齊的 PWM 信號或中央對齊的 PWM信號。

PWM 邊沿對齊模式

向上計數配置

當 TIMx_CR1 寄存器中的 DIR 位為低的時候執(zhí)行向上計數。下面是一個 PWM 模式 1 的例子。當 TIMx_CNT

wKgZO2gwPCWAItbxAACnLmnSlZk325.png

向下計數的配置

當 TIMx_CR1 寄存器的 DIR 位為高時執(zhí)行向下計數。在 PWM 模式 1,當 TIMx_CNT>TIMx_CCRx 時參考信號 OCxREF 為低,否則為高。如果TIMx_CCRx 中的比較值大于 TIMx_ARR 中的自動重裝載值,則 OCxREF 保持為'1'。該模式下不能產生 0%的 PWM 波形。

PWM 中央對齊模式

當 TIMx_CR1 寄存器中的 CMS 位不為'00'時為中央對齊模式(所有其他的配置對 OCxREF/OCx 信號都有相同的作用)。根據不同的 CMS 位設置,比較標志可以在計數器向上計數時被置 1、在計數器向下計數時被置 1、或在計數器向上和向下計數時被置 1。TIMx_CR1 寄存器中的計數方向位(DIR)由硬件更新,不要用軟件修改它。下圖給出了一些中央對齊的 PWM 波形的例子。

TIMx_ARR=8

PWM 模式 1

TIMx_CR1 寄存器的 CMS=01,在中央對齊模式 1 下,當計數器向下計數時設置比較標志。

wKgZPGgwPCaARJiwAAF6jCEfH6Q797.png

使用中央對齊模式的提示:

進入中央對齊模式時,使用當前的向上/向下計數配置;這就意味著計數器向上還是向下計數取決于 TIMx_CR1 寄存器中 DIR 位的當前值。此外,軟件不能同時修改 DIR 和 CMS 位。

不推薦當運行在中央對齊模式時改寫計數器,因為這會產生不可預知的結果。特別地: 如果寫入計數器的值大于自動重加載的值(TIMx_CNT>TIMx_ARR),則方向不會被更新。例如,如果計數器正在向上計數,它就會繼續(xù)向上計數。如果將 0 或者 TIMx_ARR 的值寫入計數器,方向被更新,但不產生更新事件 UEV。

使用中央對齊模式最保險的方法,就是在啟動計數器之前產生一個軟件更新(設置 TIMx_EGR位中的 UG 位),并且不要在計數進行過程中修改計數器的值。

3.10 互補輸出和死區(qū)插入

高級控制定時器(TIM1 和 TIM8)能夠輸出兩路互補信號,并且能夠管理輸出的瞬時關斷和接通。這段時間通常被稱為死區(qū),用戶應該根據連接的輸出器件和它們的特性(電平轉換的延時、電源開關的延時等)來調整死區(qū)時間。

配置 TIMx_CCER 寄存器中的 CCxP 和 CCxNP 位,可以為每一個輸出獨立地選擇極性(主輸出 OCx或互補輸出 OCxN)。

互補信號 OCx和OCxN通過下列控制位的組合進行控制:TIMx_CCER寄存器的CCxE和CCxNE位,TIMx_BDTR 和 TIMx_CR2 寄存器中的 MOE、OISx、OISxN、OSSI 和 OSSR 位,特別的是,在轉換到 IDLE 狀態(tài)時(MOE 下降到 0)死區(qū)被激活。

同時設置 CCxE 和 CCxNE 位將插入死區(qū),如果存在剎車電路,則還要設置 MOE 位。每一個通道都有一個 10 位的死區(qū)發(fā)生器。參考信號 OCxREF 可以產生 2 路輸出 OCx 和 OCxN。如果 OCx 和 OCxN為高有效:

OCx 輸出信號與參考信號相同,只是它的上升沿相對于參考信號的上升沿有一個延遲。

OCxN 輸出信號與參考信號相反,只是它的上升沿相對于參考信號的下降沿有一個延遲。如果延遲大于當前有效的輸出寬度(OCx 或者 OCxN),則不會產生相應的脈沖。下列幾張圖顯示了死區(qū)發(fā)生器的輸出信號和當前參考信號 OCxREF 之間的關系。(假設 CCxP=0、CCxNP=0、MOE=1、CCxE=1 并且 CCxNE=1)。帶死區(qū)插入的互補輸出如下圖所示:

wKgZO2gwQxeASFEcAAA30IFHr1k744.png

死區(qū)波形延遲大于負脈沖如下圖所示:

wKgZPGgwQxeASfBSAAAsLojSQ74238.png

死區(qū)波形延遲大于正脈沖如下圖所示:

wKgZO2gwQxeAZJ5lAAAvJeowSmA286.png

每一個通道的死區(qū)延時都是相同的,是由 TIMx_BDTR 寄存器中的 DTG 位編程配置。重定向 OCxREF 到 OCx 或 OCxN

在輸出模式下(強置、輸出比較或 PWM),通過配置 TIMx_CCER 寄存器的 CCxE 和 CCxNE 位,OCxREF 可以被重定向到 OCx 或者 OCxN 的輸出。

這個功能可以在互補輸出處于無效電平時,在某個輸出上送出一個特殊的波形(例如 PWM 或者靜態(tài)有效電平)。另一個作用是,讓兩個輸出同時處于無效電平,或處于有效電平和帶死區(qū)的互補輸出。

3.11 產生六步 PWM 輸出

當在一個通道上需要互補輸出時,預裝載位有 OCxM、CCxE 和 CCxNE。在發(fā)生 COM 換相事件時,這些預裝載位被傳送到影子寄存器位。這樣你就可以預先設置好下一步驟配置,并在同一個時刻同時修更改所有通道的配置。COM 可以通過設置 TIMx_EGR 寄存器的 COM 位由軟件產生,或在TRGI 上升沿由硬件產生。

當發(fā)生 COM 事件時會設置一個標志位(TIMx_SR 寄存器中的 COMIF 位),這時如果已設置了TIMx_DIER 寄存器的 COMIE 位,則產生一個中斷;如果已設置了 TIMx_DIER 寄存器的 COMDE 位,則產生一個 DMA 請求。

下圖顯示當發(fā)生 COM 事件時,三種不同配置下 OCx 和 OCxN 輸出:

wKgZPGgwQxiAbqnKAAGBaXkRiwQ264.png

3.12 單脈沖模式

單脈沖模式(OPM)是前述眾多模式的一個特例。這種模式允許計數器響應一個激勵,并在一個程序可控的延時之后產生一個脈寬可程序控制的脈沖??梢酝ㄟ^從模式控制器啟動計數器,在輸出比較模式或者 PWM 模式下產生波形。設置 TIMx_CR1寄存器中的 OPM 位將選擇單脈沖模式,這樣可以讓計數器自動地在產生下一個更新事件 UEV 時停止。

僅當比較值與計數器的初始值不同時,才能產生一個脈沖。啟動之前(當定時器正在等待觸發(fā)),

須如下配置:

向上計數方式:計數器 CNT

向下計數方式:計數器 CNT>CCRx。

wKgZPGgwQxeAXmcnAACAtF3bqXg452.png

例如,你需要在從 TI2 輸入腳上檢測到一個上升沿開始,延遲 tDELAY 之后,在 OC1 上產生一個長度為 tPULSE 的正脈沖。

假定 TI2FP2 作為觸發(fā) 1:

置 TIMx_CCMR1 寄存器中的 CC2S=01,把 TI2FP2 映像到 TI2。

置 TIMx_CCER 寄存器中的 CC2P=0,使 TI2FP2 能夠檢測上升沿。

置 TIMx_SMCR 寄存器中的 TS=110,TI2FP2 作為從模式控制器的觸發(fā)(TRGI)。

置 TIMx_SMCR 寄存器中的 SMS=110(觸發(fā)模式),TI2FP2 被用來啟動計數器。OPM 的波形由寫入比較寄存器的數值決定(要考慮時鐘頻率和計數器預分頻器)

tDELAY 由 TIMx_CCR1 寄存器中的值定義。

tPULSE 由自動裝載值和比較值之間的差值定義(TIMx_ARR-TIMx_CCR1)。

假定當發(fā)生比較匹配時要產生從 0 到 1 的波形,當計數器達到預裝載值時要產生一個從 1 到0 的波形;首先要置 TIMx_CCMR1 寄存器的 OC1M=111,進入 PWM 模式 2;根據需要有選擇地使能預裝載寄存器:置 TIMx_CCMR1 中的 OC1PE=1 和 TIMx_CR1 寄存器中的 ARPE;然后在 TIMx_CCR1 寄存器中填寫比較值,在 TIMx_ARR 寄存器中填寫自動裝載值,設置 UG 位來產生一個更新事件,然后等待在 TI2 上的一個外部觸發(fā)事件。本例中,CC1P=0。

在這個例子中,TIMx_CR1 寄存器中的 DIR 和 CMS 位應該置低。因為只需要一個脈沖,所以必須設置 TIMx_CR1 寄存器中的 OPM=1,在下一個更新事件(當計數器從自動裝載值翻轉到 0)時停止計數。

特殊情況:OCx 快速使能:

在單脈沖模式下,在 TIx 輸入腳的邊沿檢測邏輯設置 CEN 位以啟動計數器。然后計數器和比較值間的比較操作產生了輸出的轉換。但是這些操作需要一定的時鐘周期,因此它限制了可得到的最小延時 tDELAY。如果要以最小延時輸出波形,可以設置 TIMx_CCMRx 寄存器中的 OCxFE 位;此時 OCxREF(和 OCx)直接響應激勵而不再依賴比較的結果,輸出的波形與比較匹配時的波形一樣。OCxFE 只在通道配置為 PWM1 和 PWM2 模式時起作用。

3.13 編碼器接口模式

選擇編碼器接口模式的方法是:如果計數器只在 TI2 的邊沿計數,則置 TIMx_SMCR 寄存器中的SMS=001;如果只在 TI1 邊沿計數,則置 SMS=010;如果計數器同時在 TI1 和 TI2 邊沿計數,則置SMS=011。

通過設置 TIMx_CCER 寄存器中的 CC1P 和 CC2P 位,可以選擇 TI1 和 TI2 極性;如果需要,還可以對輸入濾波器編程。

兩個輸入 TI1 和 TI2 被用來作為增量編碼器的接口。參看表 71,假定計數器已經啟動(TIMx_CR1 寄存器中的 CEN=1),則計數器由每次在 TI1FP1 或 TI2FP2 上的有效跳變驅動。TI1FP1 和 TI2FP2 是TI1 和 TI2 在通過輸入濾波器和極性控制后的信號;如果沒有濾波和變相,則 TI1FP1=TI1,TI2FP2=TI2。根據兩個輸入信號的跳變順序,產生了計數脈沖和方向信號。依據兩個輸入信號的跳變順序,計數器向上或向下計數,同時硬件對 TIMx_CR1 寄存器的 DIR 位進行相應的設置。不管計數器是依靠 TI1 計數、依靠 TI2 計數或者同時依靠 TI1 和 TI2 計數,在任一輸入端(TI1 或者 TI2)的跳變都會重新計算 DIR 位。

編碼器接口模式基本上相當于使用了一個帶有方向選擇的外部時鐘。這意味著計數器只在 0 到TIMx_ARR 寄存器的自動裝載值之間連續(xù)計數(根據方向,或是 0 到 ARR 計數,或是 ARR 到 0 計數)。所以在開始計數之前必須配置 TIMx_ARR;同樣,捕獲器、比較器、預分頻器、重復計數器、觸發(fā)輸出特性等仍工作如常。編碼器模式和外部時鐘模式 2 不兼容,因此不能同時操作。在這個模式下,計數器依照增量編碼器的速度和方向被自動的修改,因此計數器的內容始終指示著編碼器的位置。計數方向與相連的傳感器旋轉的方向對應。下表列出了所有可能的組合,假設TI1 和 TI2 不同時變換。

有效邊沿 相對信號的電平(TI1FP1 對應 TI2, TI2FP2 對應 TI1) TI1FP1 信號 TI2FP2 信號
上升 下降 上升 下降
僅在 TI1 計數 向下計數 向上計數 不計數 不計數
向上計數 向下計數 不計數 不計數
僅在 TI2 計數 不計數 不計數 向上計數 向下計數
不計數 不計數 向下計數 向上計數
在 TI1 和 TI2 上計數 向下計數 向上計數 向上計數 向下計數
向上計數 向下計數 向下計數 向上計數

一個外部的增量編碼器可以直接與 MCU 連接而不需要外部接口邏輯。但是,一般會使用比較器將編碼器的差動輸出轉換到數字信號,這大大增加了抗噪聲干擾能力。編碼器輸出的第三個信號表示機械零點,可以把它連接到一個外部中斷輸入并觸發(fā)一個計數器復位。

下圖是一個計數器操作的實例,顯示了計數信號的產生和方向控制。它還顯示了當選擇了雙邊沿時,輸入抖動是如何被抑制的;抖動能會在傳感器的位置靠近一個轉換點時產生。在這個例子中,我們假定配置如下:

CC1S='01'(TIMx_CCMR1 寄存器,IC1FP1 映射到 TI1)

CC2S='01'(TIMx_CCMR2 寄存器,IC2FP2 映射到 TI2)

CC1P='0'(TIMx_CCER 寄存器,IC1FP1 不反相,IC1FP1=TI1)

CC2P='0'(TIMx_CCER 寄存器,IC2FP2 不反相,IC2FP2=TI2)

SMS='011'(TIMx_SMCR 寄存器,所有的輸入均在上升沿和下降沿有效).

CEN='1'(TIMx_CR1 寄存器,計數器使能)

編碼器模式下的計數器操作實例如下:

wKgZPGgwQxeAXmcnAACAtF3bqXg452.png

下圖為當 IC1FP1 極性反相時計數器的操作實例(CC1P='1',其他配置與上例相同):

wKgZPGgwQxeAERxOAACD4Z9pAiQ401.png

當定時器配置成編碼器接口模式時,提供傳感器當前位置的信息。使用第二個配置在捕獲模式的定時器,可以測量兩個編碼器事件的間隔,獲得動態(tài)的信息(速度,加速度,減速度)。指示機械零點的編碼器輸出可被用做此目的。根據兩個事件間的間隔,可以按照固定的時間讀出計數器。如果可能的話,你可以把計數器的值鎖存到第三個輸入捕獲寄存器(捕獲信號必須是周期的并且可以由另一個定時器產生);也可以通過一個由實時時鐘產生的 DMA 請求來讀取它的值。

3.14 定時器輸入異或功能

TIMx_CR2 寄存器中的 TI1S 位,允許通道 1 的輸入濾波器連接到一個異或門的輸出端,異或門的 3個輸入端為 TIMx_CH1、TIMx_CH2 和 TIMx_CH3。

異或輸出能夠被用于所有定時器的輸入功能,如觸發(fā)或輸入捕獲。下節(jié) 23.3.18 給出了此特性用于連接霍爾傳感器的例子。

3.15 與霍爾傳感器的接口

使用高級控制定時器(TIM1 或 TIM8)產生 PWM 信號驅動馬達時,可以用另一個通用 TIMx(TIM2、TIM3、TIM4 或 TIM5)定時器作為“接口定時器”來連接霍爾傳感器,3 個定時器輸入腳(CC1、CC2、CC3)通過一個異或門連接到 TI1 輸入通道(通過設置 TIMx_CR2 寄存器中的 TI1S 位來選擇),“接口定時器”捕獲這個信號。

從模式控制器被配置于復位模式,從輸入是 TI1F_ED。每當 3 個輸入之一變化時,計數器從新從 0開始計數。這樣產生一個由霍爾輸入端的任何變化而觸發(fā)的時間基準。

“接口定時器”上的捕獲/比較通道 1 配置為捕獲模式,捕獲信號為 TRC。捕獲值反映了兩個輸入變化間的時間延遲,給出了馬達速度的信息。

“接口定時器”可以用來在輸出模式產生一個脈沖,這個脈沖可以(通過觸發(fā)一個 COM 事件)用于改變高級定時器 TIM1 或 TIM8 各個通道的屬性,而高級控制定時器產生 PWM 信號驅動馬達。因此“接口定時器”通道必須編程為在一個指定的延時(輸出比較或 PWM 模式)之后產生一個正脈沖,這個脈沖通過 TRGO 輸出被送到高級控制定時器 TIM1 或 TIM8。

舉例:霍爾輸入連接到 TIMx 定時器,要求每次任一霍爾輸入上發(fā)生變化之后的一個指定的時刻,改變高級控制定時器 TIMx 的 PWM 配置。

置 TIMx_CR2 寄存器的 TI1S 位為'1',配置三個定時器輸入邏輯或到 TI1 輸入,時基編程:置 TIMx_ARR 為其最大值(計數器必須通過 TI1 的變化清零)。設置預分頻器得到一個最大的計數器周期,它長于傳感器上的兩次變化的時間間隔。

設置通道 1 為捕獲模式(選中 TRC):置 TIMx_CCMR1 寄存器中 CC1S=01,如果需要,還可以設置數字濾波器。

設置通道 2 為 PWM2 模式,并具有要求的延時:置 TIMx_CCMR1 寄存器中的 OC2M=111 和CC2S=00。

選擇 OC2REF 作為 TRGO 上的觸發(fā)輸出:置 TIMx_CR2 寄存器中的 MMS=101。在高級控制寄存器TIM1中,正確的ITR輸入必須是觸發(fā)器輸入,定時器被編程為產生PWM信號,捕獲/比較控制信號為預裝載的(TIMx_CR2 寄存器中 CCPC=1),同時觸發(fā)輸入控制 COM 事件(TIMx_CR2 寄存器中 CCUS=1)。在一次 COM 事件后,寫入下一步的 PWM 控制位(CCxE、OCxM),這可以在處理 OC2REF 上升沿的中斷子程序里實現。下圖顯示了這個實例:

wKgZPGgwQxiALD9MAAHNF19madg619.png

3.16 TIMx 定時器和外部觸發(fā)的同步

TIMx 定時器能夠在多種模式下和一個外部的觸發(fā)同步:復位模式、門控模式和觸發(fā)模式。

從模式:復位模式

在發(fā)生一個觸發(fā)輸入事件時,計數器和它的預分頻器能夠重新被初始化;同時,如果TIMx_CR1寄存器的 URS位為低,還產生一個更新事件 UEV;然后所有的預裝載寄存器(TIMx_ARR,TIMx_CCRx)都被更新了。

在以下的例子中,TI1 輸入端的上升沿導致向上計數器被清零:

配置通道 1 以檢測 TI1 的上升沿。配置輸入濾波器的帶寬(在本例中,不需要任何濾波器,因此保持 IC1F=0000)。觸發(fā)操作中不使用捕獲預分頻器,所以不需要配置。CC1S位只選擇輸入捕獲源,即 TIMx_CCMR1 寄存器中 CC1S=01。置 TIMx_CCER 寄存器中 CC1P=0 以確定極性(只檢測上升沿)。

置 TIMx_SMCR 寄存器中 SMS=100,配置定時器為復位模式;置 TIMx_SMCR 寄存器中 TS=101,選擇 TI1 作為輸入源。

置 TIMx_CR1 寄存器中 CEN=1,啟動計數器。

計數器開始依據內部時鐘計數,然后正常運轉直到 TI1 出現一個上升沿;此時,計數器被清零然后從 0 重新開始計數。同時,觸發(fā)標志(TIMx_SR 寄存器中的 TIF 位)被設置,根據 TIMx_DIER 寄存器中 TIE(中斷使能)位和 TDE(DMA 使能)位的設置,產生一個中斷請求或一個 DMA 請求。

下圖顯示當自動重裝載寄存器 TIMx_ARR=0x36 時的動作。在 TI1 上升沿和計數器的實際復位之間的延時取決于 TI1 輸入端的重同步電路:

wKgZO2gwQxeAN-WuAACDCMtbtlU385.png

從模式:門控模式

按照選中的輸入端電平使能計數器。在如下的例子中,計數器只在 TI1 為低時向上計數:

配置通道 1 以檢測 TI1 上的低電平。配置輸入濾波器帶寬(本例中,不需要濾波,所以保持IC1F=0000)。觸發(fā)操作中不使用捕獲預分頻器,所以不需要配置。CC1S 位用于選擇輸入捕獲源,置 TIMx_CCMR1 寄存器中 CC1S=01。置 TIMx_CCER 寄存器中 CC1P=1 以確定極性(只檢測低電平)。

置 TIMx_SMCR 寄存器中 SMS=101,配置定時器為門控模式;置 TIMx_SMCR 寄存器中 TS=101,選擇 TI1 作為輸入源。

置 TIMx_CR1 寄存器中 CEN=1,啟動計數器。在門控模式下,如果 CEN=0,則計數器不能啟動,不論觸發(fā)輸入電平如何。

只要 TI1 為低,計數器開始依據內部時鐘計數,一旦 TI1 變高則停止計數。當計數器開始或停止時都設置 TIMx_SR 中的 TIF 標置。TI1 上升沿和計數器實際停止之間的延時取決于 TI1 輸入端的重同步電路:

wKgZPGgwQxeAKujKAACI15u1_E4028.png

從模式:觸發(fā)模式

輸入端上選中的事件使能計數器。在下面的例子中,計數器在 TI2 輸入的上升沿開始向上計數:

配置通道 2 檢測 TI2 的上升沿。配置輸入濾波器帶寬(本例中,不需要任何濾波器,保持IC2F=0000)。觸發(fā)操作中不使用捕獲預分頻器,不需要配置。CC2S 位只用于選擇輸入捕獲源,置 TIMx_CCMR1 寄存器中 CC2S=01。置 TIMx_CCER 寄存器中 CC2P=1 以確定極性(只檢測低電平)。

置 TIMx_SMCR 寄存器中 SMS=110,配置定時器為觸發(fā)模式;置 TIMx_SMCR 寄存器中 TS=110,選擇 TI2 作為輸入源。當 TI2 出現一個上升沿時,計數器開始在內部時鐘驅動下計數,同時設置 TIF 標志。TI2 上升沿和計數器啟動計數之間的延時,取決于 TI2 輸入端的重同步電路:

wKgZO2gwQxiAQVsYAABbcZ8i3RQ272.png

從模式:外部時鐘模式 2+觸發(fā)模式

外部時鐘模式 2 可以與另一種從模式(外部時鐘模式 1 和編碼器模式除外)一起使用。這時,ETR 信號被用作外部時鐘的輸入,在復位模式、門控模式或觸發(fā)模式可以選擇另一個輸入作為觸發(fā)輸入。不建議使用 TIMx_SMCR 寄存器的 TS 位選擇 ETR 作為 TRGI。

在下面的例子中,一旦在 TI1 上出現一個上升沿,計數器即在 ETR 的每一個上升沿向上計數一次:

1. 通過 TIMx_SMCR 寄存器配置外部觸發(fā)輸入電路:

ETF=0000:沒有濾波

ETPS=00:不用預分頻器

ETP=0:檢測 ETR 的上升沿,置 ECE=1 使能外部時鐘模式 2。

2. 按如下配置通道 1,檢測 TI 的上升沿:

IC1F=0000:沒有濾波

觸發(fā)操作中不使用捕獲預分頻器,不需要配置

置 TIMx_CCMR1 寄存器中 CC1S=01,選擇輸入捕獲源

置 TIMx_CCER 寄存器中 CC1P=0 以確定極性(只檢測上升沿)

3. 置 TIMx_SMCR 寄存器中 SMS=110,配置定時器為觸發(fā)模式。置 TIMx_SMCR 寄存器中 TS=101,選擇 TI1 作為輸入源。當 TI1 上出現一個上升沿時,TIF 標志被設置,計數器開始在 ETR 的上升沿計數。ETR 信號的上升沿和計數器實際復位間的延時,取決于 ETRP 輸入端的重同步電路。

wKgZPGgwQxiAHK6LAAEQtm0yQm0471.png

5 定時器初始化結構體詳解

在標準庫函數頭文件w55mh32_tim.h中對定時器外設建立了四個初始化結構體,分別為時基初始化結構體TIM_TimeBaseInitTypeDef、 輸出比較初始化結構體TIM_OCInitTypeDef、輸入捕獲初始化結構體TIM_ICInitTypeDef和斷路和死區(qū)初始化結構體TIM_BDTRInitTypeDef, 高級控制定時器可以用到所有初始化結構體,通用定時器不能使用TIM_BDTRInitTypeDef結構體, 基本定時器只能使用時基結構體。接下來我們具體講解下這四個結構體。

5.1 TIM_TimeBaseInitTypeDef

時基結構體TIM_TimeBaseInitTypeDef用于定時器基礎參數設置,與TIM_TimeBaseInit函數配合使用完成配置。

代碼清單:高級定時器-1 定時器基本初始化結構體

typedef struct {
    uint16_t TIM_Prescaler;          // 預分頻器
    uint16_t TIM_CounterMode;        // 計數模式
    uint32_t TIM_Period;             // 定時器周期
    uint16_t TIM_ClockDivision;      // 時鐘分頻
    uint8_t TIM_RepetitionCounter;   // 重復計算器
} TIM_TimeBaseInitTypeDef;

TIM_Prescaler: 定時器預分頻器設置,時鐘源經該預分頻器才是定時器計數時鐘CK_CNT,它設定PSC寄存器的值。 計算公式為:計數器時鐘頻率 (fCK_CNT) 等于 fCK_PSC / (PSC[15:0] + 1),可實現1至65536分頻。

TIM_CounterMode: 定時器計數方式,可設置為向上計數、向下計數以及中心對齊。高級控制定時器允許選擇任意一種。

TIM_Period: 定時器周期,實際就是設定自動重載寄存器ARR的值,ARR 為要裝載到實際自動重載寄存器(即影子寄存器)的值,可設置范圍為0至65535。

TIM_ClockDivision: 時鐘分頻,設置定時器時鐘CK_INT頻率與死區(qū)發(fā)生器以及數字濾波器采樣時鐘頻率分頻比??梢赃x擇1、2、4分頻。

TIM_RepetitionCounter: 重復計數器,只有8位,只存在于高級定時器。

5.2 TIM_OCInitTypeDef

輸出比較結構體TIM_OCInitTypeDef用于輸出比較模式,與TIM_OCxInit函數配合使用完成指定定時器輸出通道初始化配置。高級控制定時器有四個定時器通道,使用時都必須單獨設置。

代碼清單:高級定時器-2 定時器比較輸出初始化結構體

typedef struct {
    uint16_t TIM_OCMode;        // 比較輸出模式
    uint16_t TIM_OutputState;   // 比較輸出使能
    uint16_t TIM_OutputNState;  // 比較互補輸出使能
    uint32_t TIM_Pulse;         // 脈沖寬度
    uint16_t TIM_OCPolarity;    // 輸出極性
    uint16_t TIM_OCNPolarity;   // 互補輸出極性
    uint16_t TIM_OCIdleState;   // 空閑狀態(tài)下比較輸出狀態(tài)
    uint16_t TIM_OCNIdleState;  // 空閑狀態(tài)下比較互補輸出狀態(tài)
} TIM_OCInitTypeDef;

TIM_OCMode: 比較輸出模式選擇,總共有八種,常用的為PWM1/PWM2。它設定CCMRx寄存器OCxM[2:0]位的值。

TIM_OutputState: 比較輸出使能,決定最終的輸出比較信號OCx是否通過外部引腳輸出。它設定TIMx_CCER寄存器CCxE/CCxNE位的值。

TIM_OutputNState: 比較互補輸出使能,決定OCx的互補信號OCxN是否通過外部引腳輸出。它設定CCER寄存器CCxNE位的值。

TIM_Pulse: 比較輸出脈沖寬度,實際設定比較寄存器CCR的值,決定脈沖寬度??稍O置范圍為0至65535。

TIM_OCPolarity: 比較輸出極性,可選OCx為高電平有效或低電平有效。它決定著定時器通道有效電平。它設定CCER寄存器的CCxP位的值。

TIM_OCNPolarity: 比較互補輸出極性,可選OCxN為高電平有效或低電平有效。它設定TIMx_CCER寄存器的CCxNP位的值。

TIM_OCIdleState: 空閑狀態(tài)時通道輸出電平設置,可選輸出1或輸出0,即在空閑狀態(tài)(BDTR_MOE位為0)時,經過死區(qū)時間后定時器通道輸出高電平或低電平。它設定CR2寄存器的OISx位的值。

TIM_OCNIdleState: 空閑狀態(tài)時互補通道輸出電平設置,可選輸出1或輸出0,即在空閑狀態(tài)(BDTR_MOE位為0)時,經過死區(qū)時間后定時器互補通道輸出高電平或低電平, 設定值必須與TIM_OCIdleState相反。它設定是CR2寄存器的OISxN位的值。

5.3 TIM_ICInitTypeDef

輸入捕獲結構體TIM_ICInitTypeDef用于輸入捕獲模式,與TIM_ICInit函數配合使用完成定時器輸入通道初始化配置。 如果使用PWM輸入模式需要與TIM_PWMIConfig函數配合使用完成定時器輸入通道初始化配置。

代碼清單:高級定時器 定時器輸入捕獲初始化結構體

typedef struct {
    uint16_t TIM_Channel;      // 輸入通道選擇
    uint16_t TIM_ICPolarity;   // 輸入捕獲觸發(fā)選擇
    uint16_t TIM_ICSelection;  // 輸入捕獲選擇
    uint16_t TIM_ICPrescaler;  // 輸入捕獲預分頻器
    uint16_t TIM_ICFilter;     // 輸入捕獲濾波器
} TIM_ICInitTypeDef;

TIM_Channel: 捕獲通道ICx選擇,可選TIM_Channel_1、 TIM_Channel_2、TIM_Channel_3或TIM_Channel_4四個通道。它設定CCMRx寄存器CCxS位 的值。

TIM_ICPolarity: 輸入捕獲邊沿觸發(fā)選擇,可選上升沿觸發(fā)、 下降沿觸發(fā)或邊沿跳變觸發(fā)。它設定CCER寄存器CCxP位和CCxNP位的值。

TIM_ICSelection: 輸入通道選擇,捕獲通道ICx的信號可來自三個輸入通道,分別為TIM_ICSelection_DirectTI、 TIM_ICSelection_IndirectTI或TIM_ICSelection_TRC,具體的區(qū)別見下圖,輸入通道與捕獲通道IC的映射圖 。 如果是普通的輸入捕獲,4個通道都可以使用,如果是PWM輸入則只能使用通道1和通道2。它設定CCRMx寄存器的CCxS[1:0]位的值。

wKgZO2gwQxiAPNOnAAEFzGbXGRY274.png

TIM_ICPrescaler:輸入捕獲通道預分頻器,可設置1、2、4、8分頻,它設定CCMRx寄存器的ICxPSC[1:0]位的值。如果需要捕獲輸入信號的每個有效邊沿,則設置1分頻即可。

TIM_ICFilter: 輸入捕獲濾波器設置,可選設置0x0至0x0F。它設定CCMRx寄存器ICxF[3:0]位的值。一般我們不使用濾波器,即設置為0。

5.4 TIM_BDTRInitTypeDef

斷路和死區(qū)結構體TIM_BDTRInitTypeDef用于斷路和死區(qū)參數的設置,屬于高級定時器專用,用于配置斷路時通道輸出狀態(tài),以及死區(qū)時間。 它與TIM_BDTRConfig函數配置使用完成參數配置。這個結構體的成員只對應BDTR這個寄存器,有關成員的具體使用配置請參考手冊BDTR寄存器的詳細描述。

代碼清單:高級定時器-4 斷路和死區(qū)初始化結構體

typedef struct {
    uint16_t TIM_OSSRState;        // 運行模式下的關閉狀態(tài)選擇
    uint16_t TIM_OSSIState;        // 空閑模式下的關閉狀態(tài)選擇
    uint16_t TIM_LOCKLevel;        // 鎖定配置
    uint16_t TIM_DeadTime;         // 死區(qū)時間
    uint16_t TIM_Break;            // 斷路輸入使能控制
    uint16_t TIM_BreakPolarity;    // 斷路輸入極性
    uint16_t TIM_AutomaticOutput;  // 自動輸出使能
} TIM_BDTRInitTypeDef;

TIM_OSSRState: 運行模式下的關閉狀態(tài)選擇,它設定BDTR寄存器OSSR位的值。

TIM_OSSIState: 空閑模式下的關閉狀態(tài)選擇,它設定BDTR寄存器OSSI位的值。

TIM_LOCKLevel: 鎖定級別配置, BDTR寄存器LOCK[1:0]位的值。

TIM_DeadTime: 配置死區(qū)發(fā)生器,定義死區(qū)持續(xù)時間,可選設置范圍為0x0至0xFF。它設定BDTR寄存器DTG[7:0]位的值。

TIM_Break: 斷路輸入功能選擇,可選使能或禁止。它設定BDTR寄存器BKE位的值。

TIM_BreakPolarity: 斷路輸入通道BRK極性選擇,可選高電平有效或低電平有效。它設定BDTR寄存器BKP位的值。

TIM_AutomaticOutput: 自動輸出使能,可選使能或禁止,它設定BDTR寄存器AOE位的值。

WIZnet 是一家無晶圓廠半導體公司,成立于 1998 年。產品包括互聯網處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術,基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應用中的嵌入式互聯網設備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設有辦事處,提供技術支持和產品營銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44961

    瀏覽量

    648867
  • 以太網
    +關注

    關注

    40

    文章

    5610

    瀏覽量

    175357
  • 計數器
    +關注

    關注

    32

    文章

    2290

    瀏覽量

    96231
  • 定時器
    +關注

    關注

    23

    文章

    3297

    瀏覽量

    117603
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第二十TIM——基本定時器

    本章介紹了W55H32基本定時器TIM6、TIM7,16位向上計數,含時鐘源、預分頻等,講解定時計算及初始化結構體。
    的頭像 發(fā)表于 06-20 13:51 ?268次閱讀
    <b class='flag-5'>第二十</b>章 <b class='flag-5'>TIM</b>——基本<b class='flag-5'>定時器</b>

    好消息!昇潤科技推出藍牙4.2開發(fā)視頻教程啦

    第十九章 Timer之PWM模式使用簡介第二十章 Timer之定時中斷模式使用簡介第二十一章 Timer之外部輸入捕獲計時模式使用簡介第二十二章 Timer之外部輸入捕獲計數模式使用簡
    發(fā)表于 05-22 16:14

    HarmonyOS內核源碼分析(下)

    是操作系統的基本時間單位第十九章 CPU是韋小寶,有哪七個老婆第二十章 全盤解剖系統調用實現過程第二十一章 ARM 37個寄存一網打盡, 不再神秘第二十二章 社會很單純 , 復雜的是
    發(fā)表于 04-02 15:56

    【每日一練】RT-Thread Nano-ESP8266 WIFI-溫度上傳至本地服務第二十二節(jié)學習視頻)

    本視頻為【每日一練】的第二十二節(jié)學習視頻,注:剛開始學習的童鞋請從第一節(jié)視頻開始打卡哦(本節(jié)視頻在下面打卡即可)學習任務:1、本節(jié)打卡任務大家自由發(fā)揮打卡規(guī)則詳見:【每日一練】RT-Thread
    發(fā)表于 06-07 11:03

    火力發(fā)電廠水汽分析方法 第二十二部分:化學耗氧量的測定(高錳

    火力發(fā)電廠水汽分析方法 第二十二部分:化學耗氧量的測定(高錳酸鉀法) Analytical methods of steam and water in power plants Part
    發(fā)表于 06-08 12:14 ?23次下載

    實時頻譜儀原理及操作指南

    實時頻譜儀原理及操作指南:第十八章顯示行.233第十九章 W-CDMA 下行分析儀(選件22).236第二十章 W-CDMA 上行分析253第二十一章 文件操作.268第二十二章 文件格式.276
    發(fā)表于 10-17 17:37 ?0次下載

    第二十二講 同步時序邏輯電路的分析方法

    第二十二講 同步時序邏輯電路的分析方法 內容提要7.1 概述一、時序電路的定義二、電路構成三、分類:1 同步2 異
    發(fā)表于 03-30 16:26 ?5528次閱讀
    <b class='flag-5'>第二十二</b>講 同步時序邏輯電路的分析方法

    模擬電路網絡課件 第二十二節(jié):功率放大電路的一般問題

    模擬電路網絡課件 第二十二節(jié):功率放大電路的一般問題 5.1 功率放大電路的一般問題 一、功率放大電路的定義
    發(fā)表于 09-17 11:05 ?861次閱讀

    第二十二屆高交會深圳開幕 3300多家展商亮相

    11日,以科技改變生活,創(chuàng)新驅動發(fā)展為主題的第二十二屆中國國際高新技術成果交易會在深圳開幕。3300多家海內外展商攜帶逾萬個科技創(chuàng)新項目亮相。 本屆高交會將持續(xù)至11月15日,安排有展覽、論壇
    的頭像 發(fā)表于 11-12 08:44 ?2470次閱讀

    2020第二十二屆高交會助力科技領域雙循環(huán)

    11月11日,第二十二屆中國國際高新技術成果交易會(下稱高交會)在深圳拉開大幕,國內外優(yōu)秀企業(yè)、創(chuàng)客、投融資機構以及專家學者將共聚一堂,共同梳理未來新機遇。 觀眾體驗新一代智能頭盔 以科技創(chuàng)新驅動
    發(fā)表于 11-12 10:56 ?649次閱讀

    第二十二屆高交會圓滿落幕,極視角與您明年相約

    2020年11月15日,以科技改變生活,創(chuàng)新驅動發(fā)展為主題的第二十二屆中國國際高新技術成果交易會(簡稱高交會)在深圳會展中心落下帷幕。 極視角作為人工智能企業(yè),攜算法商城、極市與極星兩大底層引擎平臺
    的頭像 發(fā)表于 11-24 10:34 ?1441次閱讀

    美高電子推出高性能迷你主機,亮相深圳第二十二屆高交會

    2020年11月11日-15日,一年一度的科技盛宴第二十二屆中國國際高新技術成果交易會(簡稱高交會)以科技改變生活 創(chuàng)新驅動發(fā)展為主題于深圳會展中心舉辦,展覽總面積達到12萬平方米以上。美高電子推出
    的頭像 發(fā)表于 11-27 15:15 ?1630次閱讀

    STM32 TIM—基本定時器

    STM32F4xx系列控制有共有14個TIM定時器。其中2個高級控制定時器TIM1和
    的頭像 發(fā)表于 07-22 17:05 ?5961次閱讀
    STM32 <b class='flag-5'>TIM</b>—基本<b class='flag-5'>定時器</b>

    展會直擊 | 美格智能亮相IOTE 2024第二十二屆國際物聯網展·深圳站

    IOTE2024第二十二屆國際物聯網展·深圳站于2024年8月28日—30日在深圳國際會展中心(寶安)開展,美格智能攜最新的5G/4GAIoT模組與物聯網行業(yè)解決方案精彩亮相,持續(xù)為客戶帶來通信技術
    的頭像 發(fā)表于 08-29 11:52 ?814次閱讀
    展會直擊 | 美格智能亮相IOTE 2024<b class='flag-5'>第二十二</b>屆國際物聯網展·深圳站

    巍泰技術攜多款創(chuàng)新產品驚艷亮相 2024 第二十二屆物聯網展

    8月28-30日,為期三天的IOTE2024第二十二屆國際物聯網展在深圳國際會展中心圓滿落幕。在這場精彩紛呈的科技盛宴中,巍泰技術攜多款創(chuàng)新產品驚艷亮相,以其卓越的技術實力和創(chuàng)新的產品解決方案,成為
    的頭像 發(fā)表于 09-11 15:11 ?632次閱讀
    巍泰技術攜多款創(chuàng)新產品驚艷亮相 2024 <b class='flag-5'>第二十二</b>屆物聯網展