精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

AT32講堂036 | AT32 MCU定時器入門指南

雅特力 AT32 MCU ? 2022-11-02 14:56 ? 次閱讀

AT32定時器概述

定時器種類有基本定時器、通用定時器、高級控制定時器,以AT32F435xx舉例,下表為各種類型定時器的功能總表。本文主要就定時器溢出中斷進行基礎講解和案列解析。表1. 各定時器功能總表12b602fa-5a78-11ed-b116-dac502259ad0.png12d608ac-5a78-11ed-b116-dac502259ad0.png

例 定時器溢出中斷

功能簡介

定時器溢出中斷是定時器最基礎功能,進入中斷的時間周期可由相關寄存器配置。

  • 定時器計數器值TMRx_CVAL
  • 定時器預分頻寄存器TMRx_DIV
  • 定時器周期寄存器(TMRx_PR)

定時器中斷頻率計算公式如下12fb96bc-5a78-11ed-b116-dac502259ad0.png其中,TMRxCLK雖然來源于APB1/2時鐘,但下圖時鐘架構可以看出,檔APB1/2 Divider存在非1除頻時,TMRxCLK會有x2。例如AHB=240 MHz,APB1/2=120MHz,TMRxCLK的實際頻率為240 MHz.以向上計數模式舉例,TMREN bit使能后,TMRx_CVAL會開始進行累加1,直到其值等于TMRx_PR后,OVFIF位會置起并且定時器會觸發溢出中斷事件,(若溢出中斷有開啟,則會產生溢出中斷),同時TMRx_CVAL會再次從0開始計數,周而復始。圖1. 定時器時鐘源架構13107a5a-5a78-11ed-b116-dac502259ad0.png

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\timer_base

軟件設計

1) 配置流程

  • 編寫定時器溢出中斷函數的應用程序
  • 開啟定時器外設時鐘
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 開啟定時器溢出中斷
  • 開啟NVIC溢出中斷
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

13248068-5a78-11ed-b116-dac502259ad0.png

  • TMR1_OVF_TMR10_IRQHandler中斷函數代碼描述

134d7112-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • LED3每1秒翻轉一次。

例 PWM輸出

功能簡介

定時器的輸出部分由比較器和輸出控制構成,用于編程輸出信號的周期、占空比、極性。高級定時器的輸出部分在不同通道上有所不同。

高級定時器在通道1到通道3上擁有互補輸出,且配備死區調節;通道1到通道4擁有剎車控制。通用定時器的輸出部分沒有上述功能,只配備了4個通道輸出。基本定時器、通用定時器和高級定時器的具體功能差異可查看RM的TMR章節。

如下圖為高級定時器通道1到3輸出部分原理圖:

圖2.高級定時器通道1到3輸出部分原理圖136d9abe-5a78-11ed-b116-dac502259ad0.png圖3. 高級定時器通道4輸出部分原理圖1389964c-5a78-11ed-b116-dac502259ad0.png

PWM輸出是定時器最常用的輸出模式,分為PWM模式A和PWM模式B。其差異在于:

PWM模式A:-OWCDIR=0,若TMRx_C1DT>TMRx_CVAL時設置C1ORAW為高,否則為低;-OWCDIR=1,若TMRx_C1DT時設置C1ORAW為低,否則為高。PWM模式B:-OWCDIR=0,若TMRx_C1DT>TMRx_CVAL時設置C1ORAW為低,否則為高;-OWCDIR=1,若TMRx_C1DT時設置C1ORAW為高,否則為低。

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\7_pwm_output

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸出管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置定時器輸出通道為PWM模式B
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

13aaa15c-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • 通過邏輯分析儀或者示波器可將波形打出來。

如下圖:圖4. 7路PWM輸出13d8d4a0-5a78-11ed-b116-dac502259ad0.png圖中通道1到4輸出頻率相同但占空比不同的波形,互補通道通過輸出極性的調節與其對應的通道輸出相同的波形。

例 PWM輸入捕獲

功能簡介

定時器的輸入部分由專門的捕獲電路實現,可用于對輸入信號的濾波、選擇、分頻和輸入捕獲功能;通過對捕獲值的計算,可得到輸入波形的頻率和占空比。

如下圖為輸入部分原理圖:

圖5. 定時器輸入部分原理圖14891752-5a78-11ed-b116-dac502259ad0.png

輸入模式下,當選中的觸發信號被檢測到時,通道寄存器(TMRx_CxDT)會記錄當前計數器計數值,并將捕獲比較中斷標志位(CxIF)置1,若已使能通道中斷(CxIEN)、通道DMA請求(CxDEN)則產生相應的中斷和DMA請求。若在CxIF已置1后檢測到選中的觸發信號,則將CxOF位置1。

另外,還提供了更加高效的PWM波輸入捕獲功能,可以更方便的計算出輸入波形的頻率和占空比。此模式的通過內部兩個CxDT寄存器實現,輸入波形通過定時器的通道1或者通道2輸入即可。圖6. 定時器捕獲PWM波原理圖14a545ee-5a78-11ed-b116-dac502259ad0.png

將定時器配置成PWM輸入模式后,可通過C1DT和C2DT的值計算出對應PWM波形的頻率和占空比:

頻率=TMR_CLK/C1DT占空比=C2DT/C1DT

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\pwm_input

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置定時器的PWM輸入模式
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

14c9c482-5a78-11ed-b116-dac502259ad0.png

  • 中斷函數代碼描述

14ee1a94-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • 從PA7灌入PWM波形;
  • 將串口1連接到上位機,然后通過上位機串口工具即可看到打印信息

例 輸入捕獲

功能簡介

通過對外部信號的上升沿或者下降沿進行捕獲可以實現對外部信號輸入捕獲并計算頻率的功能。本例程實現了對外部信號進行捕獲并通過串口打印出頻率。


資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\input_capture

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置定時器的輸入捕獲功能
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

15101946-5a78-11ed-b116-dac502259ad0.png

  • 中斷函數代碼描述

15408504-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • 從PA7灌入PWM波形;
  • 將串口1連接到上位機,然后通過上位機串口工具即可看到打印信息。

例 DMA傳輸

功能簡介

定時器擁有強大的DMA傳輸能力,基本每個定時器都支持DMA請求的產生。這使得應用更加靈活。

本實驗將src_buffer[0]、src_buffer[1]和src_buffer[2]數據通過DMA傳輸到TMR的TMRx_C3DT寄存器。實現了每個周期占空比都發生改變,且占空比在src_buffer[0]、src_buffer[1]和src_buffer[2]的值之間進行有序的切換。

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\dma

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置DMA通道
  • 配置定時器的溢出事件產生DMA請求
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

15597cda-5a78-11ed-b116-dac502259ad0.png

實驗效果

從PA10、PB15輸出PWM波形;

例 burst傳輸

功能簡介

高級定時器和通用定時器除了支持常規的DMA傳輸功能,還額外支持DMA burst傳輸功能。在配置為burst傳輸后,當TMR產生一個DMA請求可連續傳輸以TMR地址為起始地址的多筆數據;傳輸數據的起始地址和數據量可通過軟件配置。

如何配置burst傳輸:

1. 配置TMRx_DMACTRL寄存器,此寄存器的bit0到bit4為DMA傳輸地址偏移,此值決定了DMA傳輸的起始地址;bit8到bit12為DMA傳輸長度配置,此值決定了DMA傳輸的數據筆數。2. 配置DMA通道,此配置流程與常規DMA通道配置相同;需要注意的是DMA通道的源與目標地址寄存器中的一個必須為TMRx_DMADT寄存器地址;具體是源還是目標就由數據傳輸的方向決定。

本實驗將src_buffer[0]和src_buffer[2]數據通過burst傳輸到TMR的TMRx_PR和TMRx_C1DT寄存器。

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\dma_burst

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置DMA通道和定時器的burst功能
  • 配置DMAMUX
  • 開啟定時器計數

2) 代碼介紹

  • main函數代碼描述

1599484c-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • 從PA8輸出PWM波形;

例 單脈沖輸出

功能簡介

單脈沖輸出模式是PWM模式的特例,將OCMEN位置1可開啟單周期模式,此模式下,僅在當前計數周期中進行比較匹配,完成當前計數后,TMREN位清0,因此僅輸出一個脈沖。當配置為向上計數模式時,需要嚴格配置CVAL;向下計數時,需嚴格配置CVAL>CxDT。

當TMR受到外部觸發或者軟件使能CNT時,TMR開始計數并在此次overflow事件時停止計數。此過程中輸出也會根據配置產生波形。

單脈沖輸出原理如下圖:

圖7. 單脈沖輸出原理圖18fa2d94-5a78-11ed-b116-dac502259ad0.png

圖中當受到外部觸發后,TMR開始計數,當CVAL等于CxDT時,改變輸出狀態,當CVAL溢出時,輸出狀態再次改變從而達到輸出一個單脈沖的目的。

本實驗將TMR4配置為單脈沖模式。TMR4的通道1配置為輸入并充當觸發輸入的源頭,通道2配置為輸出模式,充當單脈沖輸出的端口

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\one_cycle

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入、輸出管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置定時器為向上計數方向
  • 配置定時器為單脈沖模式
  • 配置通道2為輸出口,并作為TMR觸發的觸發源

2) 代碼介紹

  • main函數代碼描述

190e2420-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • PB7輸入管腳,外部給上升沿觸發即可;
  • PB6為輸出管腳,輸出單脈沖波形。

使用邏輯分析儀打出波形如下:

圖8. 單脈沖輸出結果193d81b6-5a78-11ed-b116-dac502259ad0.png

例 32位定時器

功能簡介

部分定時器可支持擴展為32位定時器(具體請查看RM)。擴展后,不單CVAL寄存器為32位,DIV和CxDT都會自動擴展為32位。

使能32位定時器只需要設置TMRx_CTRL1寄存器的bit10為1即可。

本實驗將TMR2配置為32位定時器模式,然后配置為PWM輸出模式使其輸出PWM波形。

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\tmr2_32bit

軟件設計

1) 配置流程

  • 開啟定時器外設時鐘
  • 配置輸入、輸出管腳
  • 使能32位模式
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置通道輸出PWM波形

2) 代碼介紹

  • main函數代碼描述

19509ecc-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • PA0/1/2/3輸出波形;

圖9. 32位定時器輸出結果197e310c-5a78-11ed-b116-dac502259ad0.png

例 定時器同步

功能簡介

主次定時器之間可由內部連接信號進行同步。主定時器可由PTOS[2:0]位選擇主定時器輸出,即同步信息;次定時器由SMSEL[2:0]位選擇從模式,即次定時器的工作模式。定時器從模式有以下幾種:

復位模式:

此模式下,當次定時器收到一個同步信號后,次定時器復位計數器和預分頻器,定時器的 CVAL寄存器變為0重新開始計數。若OVFS位為0,將產生一個溢出事件。圖10. 復位模式圖199430ec-5a78-11ed-b116-dac502259ad0.png

掛起模式:

掛起模式下,計數的計數和剎車受選中觸發輸入信號控制,當觸發輸入為高電平時計數器開始計數;當為低電平時,計數器暫停計數。圖11. 掛起模式圖19a78714-5a78-11ed-b116-dac502259ad0.png

觸發模式:

觸發模式下,次定時器當受到外部觸發信號后,自動啟動定時器,即硬件置TMR_EN為1。所以在觸發模式下,初始化定時器后軟件不需要使能定時器。圖12. 掛起模式圖19c942aa-5a78-11ed-b116-dac502259ad0.png本例程實現了TMR2同步TMR3和TMR4。主定時器TMR2選擇溢出事件作為同步信號輸出,次定時器TMR3和TMR4選擇掛起模式作為從模式。

資源準備

1) 硬件環境對應產品型號的AT-START BOARD2) 軟件環境project\at_start_xxx\examples\tmr\parallel_synchro

軟件設計

1) 配置流程

  • 定時器外設時鐘
  • 配置輸入、輸出管腳
  • 配置定時器TMRx_DIV寄存器和TMRx_PR寄存器
  • 配置主模式和從模式
  • 配置PWM輸出模式
  • 使能定時器

2) 代碼介紹

  • main函數代碼描述

19e40b3a-5a78-11ed-b116-dac502259ad0.png

實驗效果

  • 通過PA6/PA0/PB6輸出波形,可使用邏輯分析儀抓取波形查看。

關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G物聯網、消費、商務及工控等領域。

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

    關注

    146

    文章

    16987

    瀏覽量

    350301
收藏 人收藏

    評論

    相關推薦

    STM32轉AT32代碼轉換

    1.引言在嵌入式開發中,我們經常會遇到更換單片機芯片的事情,若芯片是同一廠家的還好說,若是不同廠家的則需要重新寫,重新調,重新去學習其底層驅動程序,比較費時費力。如:ST32轉AT32、ST32轉
    的頭像 發表于 09-28 08:09 ?273次閱讀
    STM32轉<b class='flag-5'>AT32</b>代碼轉換

    AT32講堂088 | 雅特力AT32F402/F405時鐘配置

    簡介時鐘是芯片正確高效運行的基礎,正確的時鐘配置是芯片能正確運行的必要條件,其重要性不言而喻。AT32各系列產品的時鐘配置部分可能存在細微的差異和需要注意的事項,本文檔就著重針對各系列的情況來詳細
    的頭像 發表于 09-15 08:08 ?402次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>088 | 雅特力AT32F402/F405時鐘配置

    AT32講堂087 | 雅特力AT32 IDE快速入門指南

    新建項目新項目向導AT32ID提供支持雅特力MCU的C語言項目模板,方便用戶快速創建項目。菜單欄【File】>【New】>【CProject】。新建項目向導的對話框將出現。在對
    的頭像 發表于 09-15 08:08 ?356次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>087 | 雅特力<b class='flag-5'>AT32</b> IDE快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    雅特力AT32 MCU的隨機數生成

    概述產品和生態系統安全性的需求比以往任何時候都更加重要。真隨機數是所有安全系統的核心,其質量會影響設計的安全性。因此在沒有內置硬件TRNG的AT32的微控制系列中,如何提高隨機數的有效,來符合
    的頭像 發表于 08-30 12:26 ?457次閱讀
    雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的隨機數生成

    AT32講堂085 | 雅特力AT32 MCU HICK時鐘校準

    簡介AT32系列MCU內部都有提供適合運行的內部高速時鐘(HICK),其本質就是內置于芯片的RC振蕩。在25℃下,其典型值頻率8MHz的精度由工廠校準到±1%,在-40到105℃,該內部高速時鐘
    的頭像 發表于 08-30 12:26 ?511次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>085 | 雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> HICK時鐘校準

    定時器的工作方式介紹

    定時器是計算機和嵌入式系統中常見的一種硬件模塊,用于實現定時和計數功能。定時器的工作方式通常由一組寄存來控制,這些寄存定義了
    的頭像 發表于 07-12 10:29 ?729次閱讀

    如何實現一個軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過一個硬件定時器產生固定的時鐘節拍,每次硬件定時器中斷到,就對一個全局的時間標記加一,每個軟件
    的頭像 發表于 04-29 11:00 ?580次閱讀

    使用555定時器的可調雙定時器電路

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關電路、占空比選擇、時鐘脈沖發生等。這也可用于各種應用,如精確
    的頭像 發表于 02-25 15:16 ?2009次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路

    雅特力AT32 MCU與SEGGER攜手合作,開發量產事半功倍

    近日,雅特力與SEGGER共同宣布J-Link仿真調試與Flasher在線燒錄全面支持AT32 MCU產品,SEGGER工具鏈的加持使AT32
    的頭像 發表于 02-23 10:27 ?365次閱讀

    AT32 定時器配置中pr和div的作用

    AT32定時器是51系列單片機中的一種定時器,可以實現多種定時功能。在AT32定時器中,pr和d
    的頭像 發表于 01-08 10:12 ?1229次閱讀

    單片機定時器的用法

    本章以CW32通用定時器為例介紹單片機定時器的用法。
    的頭像 發表于 01-04 10:37 ?1345次閱讀
    單片機<b class='flag-5'>定時器</b>的用法

    潤開鴻AT32開發平臺通過OpenHarmony兼容性測評

    近期,江蘇潤開鴻數字科技有限公司(以下簡稱“潤開鴻”)AT32開發平臺通過OpenAtom OpenHarmony(以下簡稱\"OpenHarmony\")3.2.
    發表于 12-21 17:20

    潤開鴻AT32開發平臺通過OpenHarmony兼容性測評

    點擊藍字 ╳ 關注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 近期,江蘇潤開鴻數字科技有限公司(以下簡稱“潤開鴻”)AT32開發平臺通過OpenAtom
    的頭像 發表于 12-20 21:10 ?662次閱讀
    潤開鴻<b class='flag-5'>AT32</b>開發平臺通過OpenHarmony兼容性測評

    定時器會阻塞線程嗎 定時器指令有哪幾種

    定時器會阻塞線程嗎 定時器指令有哪幾種? 定時器一般不會阻塞線程,但具體是否會阻塞取決于所使用的定時器實現方式和使用方式。 定時器指令可以分
    的頭像 發表于 12-19 14:03 ?892次閱讀

    潤開鴻AT32開發平臺通過OpenHarmony兼容性測評

    近期,江蘇潤開鴻數字科技有限公司(以下簡稱“潤開鴻”)AT32開發平臺通過OpenHarmony3.2.Release版本兼容性測評,助力潤開鴻基于該開發平臺全新研發推出的行業終端設備順利融入
    的頭像 發表于 12-15 08:02 ?583次閱讀
    潤開鴻<b class='flag-5'>AT32</b>開發平臺通過OpenHarmony兼容性測評