stm32f407之高階定時器 死區互補PWM(操作暫存器)
十四、高階定時器
死區互補PWM
高階定時器的功能有很多,這裡只介紹死區互補PWM輸出功能。其實死區互補PWM跟通用定時器的PWM配置差異不大,只是需要設定多CCER暫存器中的幾個位以及剎車與死區暫存器BDTR。對暫存器的具體描述請參考資料手冊。
配置步驟:
1. 使能相關時鐘。
2. 配置相關的引腳模式、速度、以及複用功能。
3. 使能TIM時鐘
4. 設定分頻。
5. 設定週期。(ARR的值)週期=(PSC+1)* ARR / TIMx時鐘
6. 產生一次更新事件,更新影子暫存器的值。
7. 在CCMR中設定PWM模式。
8. 設定各通道佔空比。佔空比= CCRx / ARR。
9. 使能比較輸出。
10. 啟動預裝載。
11. 死區時間設定,使能輸出。
12. 開啟定時器。
程式:
/************************************ 標題:死區互補PWM 軟體平臺:IAR for ARM6.21 硬體平臺:stm32f4-discovery 主頻:168M 描述:三對死區互補PWM、一路普通PWM PE8 ----- TIM1_CH1N PE9 ----- TIM1_CH1 PE10 ----- TIM1_CH2N PE11 ----- TIM1_CH2 PE12 ----- TIM1_CH3N PE13 ----- TIM1_CH3 PE14 ----- TIM1_CH4 author:小船 data:2012-02-09 *************************************/ #include <stm32f4xx.h> void main () { SCB->AIRCR = 0x05FA0000 | 0x400; //中斷優先順序分組 搶佔:響應=3:1 RCC->AHB1ENR |= (1<<4); //開啟GPIOE時鐘 GPIOE->MODER |= 0X2AAA0000;//PE8、9、10、11、12、13、14第二功能 //推輓輸出 GPIOE->OSPEEDR |= 0x3fff0000;//速度100m GPIOE->PUPDR |= 0x15550000;//上拉 //PE8、9、10、11、12、13、14第二功能AF1 GPIOE->AFR[1] |= 0x01111111; RCC->APB2ENR |= (1<<0); //開啟TIM1時鐘 TIM1->PSC = 167; //對時鐘168M進行168分頻,使得計數頻率為1M TIM1->ARR = 10000; //週期10ms TIM1->EGR |= 1; //產生一次更新事件 TIM1->CCMR1 |= 0x6060;//PWM模式1 TIM1->CCMR2 |= 0x6060;//PWM模式1 TIM1->CCR1 = 8000;//設定佔空比 TIM1->CCR2 = 6000; TIM1->CCR3 = 4000; TIM1->CCR4 = 2000; TIM1->CCER |= 0x1ddd;//使能比較輸出 TIM1->CCMR1 |= 0x0808;//啟動預裝載 TIM1->CCMR2 |= 0x0808; TIM1->BDTR|=1<<15; // 剎車使能位置1,開啟所有輸出通道 TIM1->BDTR|=0xCD; // 死區時間設定 TIM1->CR1 |= 1; //開始計時 while(1) { }; }
相關推薦
stm32f407之高階定時器 死區互補PWM(操作暫存器)
十四、高階定時器 死區互補PWM 高階定時器的功能有很多,這裡只介紹死區互補PWM輸出功能。其實死區互補PWM跟通用定時器的PWM配置差異不大,只是需要設定多CCER暫存器中的幾個位以及剎車與死區暫存器BDTR。對暫存器的具體描述請參考資料手冊。
stm32f407之PWM(操作暫存器)
PWM 脈寬調製模式可以生成一個由TIMx_ARR暫存器的值確定頻率和TIMx_CCRx暫存器的值確定佔空比的訊號。 可以對每個通道獨立選擇PWM模式,( OCx輸出一個PWM訊號)在TIMx_CCMRx暫存器的OCxM位寫110(PW
stm32f407之基本定時器TIM6&TIM7(操作暫存器)
基本定時器TIM6&TIM7 基本定時器TIM6和TIM7包括一個由可程式設計分頻器驅動的16位自動過載計數器。它可以用作普通的定時器,也可以用來驅動DAC。這兩個定時器是完全獨立的,不共享任何資源。更多時候是與DAC平配合使用。 作為定時器
stm32f407之三ADC交替取樣(操作暫存器)
三ADC交替取樣 在多ADC模式中,ADC1為主,ADC2或ADC3為從,交替或者同時觸發,工作模式取決於ADC_CCR暫存器的MULTI[4:0]。 多ADC模式中,轉換後的資料可以多模式的資料暫存器(ADC_CDR)中讀取。狀態可以在多模式的狀態暫存器(A
4412下的pwm驅動程式-暫存器形式
這是一個操作暫存器的pwm驅動,關於pwm這一塊可以看晶片手冊,這些暫存器至於為什麼要這樣設定,手冊裡都有說明 #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h
8086彙編學習之[BX],CX暫存器與loop指令,ES暫存器等
一、彙編程式的基本格式: 1、基本格式與解析: assume cs:codeseg //assume假設CS暫存器與codeseg段有關聯,codeseg段本就是程式碼段 codeseg segment //段開始,codeseg為段名,可
STM32 之 備份域(備份暫存器、備份SRAM)詳解及資料丟失問題處理
某些STM32晶片提供了備份SRAM,例如STM32F系列晶片有4K的備份SRAM。然而在使用過程中發現備份區域資料丟失!下面從STM32系列晶片提供的整個備份域來看看啥情況。 電池備份域 首先,這部分在參考手冊的電源(PWR)章節有詳細的介紹。器件的工作電
linux之通過ptrace獲取指定pthread執行緒的暫存器資訊
#include <stdio.h> #include <unistd.h> //for sleep #include <stdlib.h> //for exit
STM32個人學習筆記-第二集(F4GPIO暫存器介紹)
STM32個人學習筆記-第二集 一,GPIO口暫存器 GPIO有九組IO口,分別用大寫字母表示,即,x=A/B/C/D/E/F/G/H/I. IO口可以由軟體配置成如下8種模式 1,輸入浮空 2,輸入上拉 3,輸入下拉 4,模擬輸入 5,開漏輸出 6,推輓輸出
3線實現2路12位數碼管顯示不同值(STM32暫存器版本)
#include <stm32f10x_lib.h> #include "sys.h" #include "usart.h" #include "delay.h" #include "dis.h" unsi
stm32 RTC實時時鐘[操作暫存器+庫函式]
#include <stm32f10x_lib.h> #include "rtc.h" #include "stdio.h" tm timer; //定義時鐘結構體,主函式直接可以呼叫此結構體讀出時間 //平年的月份日期表,月份縮寫表 const u8 Days_Table[12]
STM32定時器----通用定時器輸出帶死區互補PWM
功能:利用一個普通定時器,輸出2路互補的、頻率可調、佔空比可調、死區可調的PWM 原理:如下圖,計數模式為中心對齊模式 可以看出,CH3高電平區間是以計數器計到4為中心,向兩邊延伸的。 而CH4,因為輸出極性相反,是以0為中心向兩邊延伸的。 CCR3變小,佔空比上升 CC
PWM互補輸出及死區時間程式碼和詳解(暫存器版本)
原文: http://www.openedv.com/thread-62861-1-1.html一直跟著原子哥的教程一直學到PWM這一章發現一頭霧水,自己也沒發過什麼分享帖,感覺原子哥對PWM這章講的比較少(mini板教程),後面自己上網找了些資料,網上關於PWM講的也不多,
STM32F103輸出多路死區互補PWM波
TIM1,TIM8可以產生死區互補PWM波,學習後發現stm32的定時器功能確實很強大,小總結一下方便以後使用的時候做參考。Stm32定時器一共分為三種:tim1和tim8是高階定時器,6和7是基本定時器,2—5是通用定時器。從名字就可以看得出來主要功能上的差異。今天我主要是
C51微控制器中斷,暫存器,定時器,PWM原理,配置及使用
大家晚上好,我分享的內容大體是先介紹中斷,各暫存器使用(可能這裡有點囉嗦),然後就簡單寫一下定時器,然後PWM原理,以及它的配置和使用。大概今晚就這樣了,如果有什麼錯的,或有什麼疑問,請大家馬上提出來,一起進步。 中斷:當計算機執行正常程式時,系統中出現某些急需處理的異常
STM32 系列之 DAC 暫存器運用於理解
在這裡,我也不多BB,基本是看了原子的PDF之後,自己理解。所以可能比較簡略 單個DAC通道如下: VDDA 和VSSA為模擬電源端。 輸出電壓 = Vref+ * (DORx/2^n) &
UVM暫存器篇之三:暫存器模型的整合(上)
本文轉自:http://www.eetop.cn/blog/html/28/1561828-6266220.html 我們在上一節大致瞭解了與暫存器相關的流程,包括暫存器描述檔案和UVM暫存器模型生成。從上節給的暫存器模型流程圖中我們可以看到,接下來需要考慮選擇與DUT暫存器介面一致的匯流排UV
UVM暫存器篇之二:暫存器模型概覽(下)
本文轉自:http://www.eetop.cn/blog/html/28/1561828-6266219.html 暫存器模型構建 在構建UVM暫存器模型的過程中,讀者需要了解下面這些與模型構建相關的類和它們的功能: 簡化後的MCDF暫存器模
UVM暫存器篇之七:暫存器模型的常規方法(下)
本文轉自:http://www.eetop.cn/blog/html/28/1561828-6266224.html mem與reg的聯絡和差別 UVM暫存器模型也可以用來對儲存建模。uvm_mem類可以用來模擬RW(讀寫)、RO(只讀)和WO(只寫)型別的儲存,並且可以配置其模型的資料寬度
UVM暫存器篇之六:暫存器模型的常規方法(上)
本文轉自:http://www.eetop.cn/blog/html/28/1561828-6266223.html mirrored、desired和actual value 在我們應用暫存器模型的時候,除了利用它的暫存器檔案資訊,也會利用它來跟蹤暫存器的值。跟蹤暫存器的值,一方面是建立m