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

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

3天內(nèi)不再提示

GD32 Timer定時器周期時間計算公式

聚沃科技 ? 2024-01-22 09:53 ? 次閱讀

有小伙伴反饋GD32 Timer定時器的周期時間不知如何計算,今天就來安排。

我們分成兩個系列來講解——GD32F30x和GD32F4xx系列。

一、GD32F30x系列

要想計算Timer的周期時間,首先要知道Timer的時鐘頻率,看時鐘頻率當然就要看時鐘樹啦,在時鐘樹的右下方就標注了Timer的時鐘頻率。

wKgZomWtyjqAZrcDAAGgI89B6As339.png

我們把圖放大,可以看到Timer1,2,3,4,5,6,11,12,13的時鐘源來自于CK_APB1,Timer0,7,8,9,10來自于CK_APB2。而CK_APB1和CK_APB2最高的頻率為60M和120M,那這兩類Timer的時鐘頻率是不是就是60M和120M呢?

wKgaomWtyj6AdmcrAAGEu4UBU08064.png

答案是否定的。我們來看下圖方框中的提示,方框1中寫到,如果APB1的分頻系數(shù)為1的話,這些Timer的頻率就等于CK_APB1,如果APB1的分配系數(shù)不為1,則Timer的頻率等于CK_APB1*2。方框2中的內(nèi)容和方框1中相同,就不再贅述。

wKgZomWtykaACzK-AAGGYHSg_JU436.png

那么APB1和APB2的分頻系數(shù)在哪里設置的呢,答案就是——在系統(tǒng)時鐘配置中,也就是SystemInit函數(shù)中調(diào)用的system_clock_config函數(shù)。通常我們設置系統(tǒng)時鐘和AHB時鐘為120M,設置APB1分頻系數(shù)為2,即APB1時鐘為AHB時鐘的二分之一60M;設置APB2分頻系數(shù)為1,即APB2時鐘等于AHB時鐘120M。

wKgaomWtykuAWEkDAAC6QHPlqrk709.png

好了,知道以上知識點我們就可以算出Timer的時鐘頻率了。舉個例子,我們設置AHB時鐘為120M,APB1分頻系數(shù)為2,我們來算下Timer1的頻率。首先,算出CK_APB1=AHB時鐘/2 = 60M,其次,由于APB1分頻系數(shù)不等于1,所以CK_Timer1=CK_APB1*2 = 60M*2 = 120M。

wKgZomWtylGAb3SXAAD0eh2NpSM523.png

算出Timer的時鐘頻率后,我們看下Timer最基礎的配置代碼:

wKgaomWtylSAXNN_AACcsIVLCMY489.png

有兩個和周期時間相關的參數(shù)

其一為prescaler,即Timer的分頻系數(shù),該分頻系數(shù)將Timer頻率進行分頻后給到計數(shù)器時鐘,計算公式為:計數(shù)器時鐘頻率 = CK_TIMER/(prescaler+1),故圖中計數(shù)器時鐘頻率為120M/12000 = 10KHz,即每100us,計時器進行一次計數(shù)。

其二為period,即周期值,也叫作重載值,在邊沿計數(shù)模式下,計數(shù)器計重載值個數(shù)所用的時間,稱為一個周期時間,計算公式為:周期時間 = (period+1)/計數(shù)器時鐘頻率;而在中央計數(shù)模式下,計數(shù)器計數(shù)重載值*2個數(shù)所用的時間,稱為一個周期時間,計算公式為:周期時間 = (period+1)*2/計數(shù)器時鐘頻率。故圖中周期時間為160/10K = 16ms。

上面講的是計算過程和原理,下面給出周期時間計算總公式:

1、邊沿計數(shù)模式下的計算公式:

(prescaler+1)*(period+1)/CK_TIMER,其中CK_TIMER根據(jù)APB1和APB2的分頻系數(shù)決定

2、中央計數(shù)模式下的計數(shù)公式:

(prescaler+1)*(period+1)*2/CK_TIMER,其中CK_TIMER根據(jù)APB1和APB2的分頻系數(shù)決定

二、GD32F4xx系列

實際上GD32F4xx系列的周期時間計算公式和GD32F30x的相同,不同的點在于CK_TIMER的計算公式,照例看下GD32F4xx的時鐘樹:

wKgZomWtyluABi9AAAE8yf10Ubs367.png

可以看到CK_TIMER可以是APB時鐘乘以1、乘以2或乘以4,那具體是乘以幾呢?這個是根據(jù)時鐘配置寄存器 1(RCU_CFG1) 中的第24位TIMERSEL來決定的:

wKgZomWtymCAVdbkAAAqn1d5Sd4318.png

wKgaomWtymWAM_qBAAFkKtufpBc876.png

GD32F4xx用戶手冊中對這一位描述的非常清晰,這里就不再贅述了。

好了,通過本期講解,相信小伙伴們就可以輕松計算出Timer的周期時間啦。

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

    關注

    6026

    文章

    44454

    瀏覽量

    630835
  • 嵌入式
    +關注

    關注

    5052

    文章

    18910

    瀏覽量

    300746
  • 定時器
    +關注

    關注

    23

    文章

    3227

    瀏覽量

    114146
  • Timer
    +關注

    關注

    1

    文章

    63

    瀏覽量

    12757
  • GD32
    +關注

    關注

    7

    文章

    403

    瀏覽量

    24049
收藏 人收藏

    評論

    相關推薦

    GD32Timer定時器原理的詳細講解

    GD32 Timr定時器看起來比較復雜啊。一看GD32E10x 的SPEC:一個高級定時器,三個通用定時器,還有一個基本
    的頭像 發(fā)表于 04-22 17:02 ?1.6w次閱讀
    <b class='flag-5'>GD32</b>對<b class='flag-5'>Timer</b><b class='flag-5'>定時器</b>原理的詳細講解

    GD32開發(fā)實戰(zhàn)指南(基礎篇) 第7章 定時器

    系統(tǒng)滴答定時器一般用來提供“心跳”作用,而GD32定時器最基本功能也是定時,可以設置不同時間長度的定時
    的頭像 發(fā)表于 05-11 09:00 ?1.1w次閱讀
    <b class='flag-5'>GD32</b>開發(fā)實戰(zhàn)指南(基礎篇) 第7章 <b class='flag-5'>定時器</b>

    GD32開發(fā)實戰(zhàn)指南(基礎篇) 第8章 定時器

    Modulation” 的縮寫,簡稱脈寬調(diào)制,是利用微處理的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù)。簡單一點,就是對脈沖寬度的控制。 GD32定時器除了 TIMER5
    的頭像 發(fā)表于 05-12 22:14 ?7686次閱讀
    <b class='flag-5'>GD32</b>開發(fā)實戰(zhàn)指南(基礎篇) 第8章 <b class='flag-5'>定時器</b>

    GD32 Timer定時器周期時間計算公式#GD32 #單片機 #定時器

    單片機mcu
    聚沃科技
    發(fā)布于 :2024年01月23日 09:37:24

    f28335定時器頻率為150, 定時器周期值為1000. 時鐘頻率150MHz 。定時時間是1ms ,這是周期寄存的值應該附多少。怎么算

    f28335定時器頻率為150, 定時器周期值為1000. 時鐘頻率150MHz 。定時時間是1ms ,這是周期寄存
    發(fā)表于 12-27 09:29

    請教關于C6748 定時器TIMER 計算公式問題

    .我在用戶手冊64-Bit Timer Plus這一章沒有看到詳細的定時時間計算公式,所以不確定裝載的數(shù)值。請問哪里有定時詳細的說明?
    發(fā)表于 07-31 06:33

    如何去計算Stm32定時器定時時間

    Stm32定時器定時計算通過計數(shù)溢出計算,也就是說計數(shù)溢出就觸發(fā)中斷計算公式:TimeOut = ((Prescaler + 1) * (Period + 1) ) / TimeClo
    發(fā)表于 08-05 07:56

    stm32 定時器 時間計算方法 精選資料推薦

    stm32 定時器 時間計算方法 和時鐘分隔值解釋參考(https://wenku.baidu.com/view/e3bdfb7601f69e31433294c4.html)定時器
    發(fā)表于 08-19 06:47

    通用定時器(Timer)

    在 Stellaris 系列 ARM 內(nèi)部通常集成有 2~4 個通用定時器模塊(General-Purpose Timer Module,GPTM),分別稱為 Timer0、Timer
    發(fā)表于 01-13 16:34 ?23次下載

    通用定時器(Timer

    通用定時器(Timer
    發(fā)表于 10-11 15:10 ?6次下載
    通用<b class='flag-5'>定時器</b>(<b class='flag-5'>Timer</b>

    單片機定時器周期計算公式

    定時器是單片機的重要功能模塊之一,在檢測、控制領域有廣泛應用。定時器常用作定時時鐘,以實現(xiàn)定時檢測,定時響應、
    發(fā)表于 01-22 15:59 ?4.1w次閱讀

    ---GD32 MCU---TIMER1更新中斷時間不準

    問題描述:用戶實用Timer1產(chǎn)生10ms的定時器中斷,但是每次卻產(chǎn)生了20ms的中斷,而且無論如何更改分頻系數(shù)和加載值定時時間都不產(chǎn)生變化。原因:客戶缺少了自動重新加載的函數(shù),導致定時器
    發(fā)表于 11-18 16:36 ?9次下載
    ---<b class='flag-5'>GD32</b> MCU---<b class='flag-5'>TIMER</b>1更新中斷<b class='flag-5'>時間</b>不準

    stm32關于通用定時器周期、頻率計算公式

    (TIMx_ARR)定時器的時鐘來源(4個):1)內(nèi)部時鐘(CK_INT)2)外部時鐘模式 1:外部輸入腳(TIx)3)外部時鐘模式 2:外部觸發(fā)輸入(ETR)4)內(nèi)部觸發(fā)輸入(ITRx)定時器周期
    發(fā)表于 11-26 15:21 ?60次下載
    stm32關于通用<b class='flag-5'>定時器</b>的<b class='flag-5'>周期</b>、頻率<b class='flag-5'>計算公式</b>

    GD32E230開發(fā)筆記-GD32E230定時器控制

    GD32E230開發(fā)筆記-GD32E230定時器控制1.硬件設計2.軟件設計定時器的配置3.設計效果4.程序源碼1.硬件設計GD32E230
    發(fā)表于 12-02 14:36 ?28次下載
    <b class='flag-5'>GD</b>32E230開發(fā)筆記-<b class='flag-5'>GD</b>32E230<b class='flag-5'>定時器</b>控制

    示波器周期計算公式

    示波器作為電子測量領域的重要工具,其能夠直觀地顯示電壓信號隨時間變化的波形,對于電路分析、信號檢測等領域具有不可替代的作用。在示波器的使用中,我們經(jīng)常需要計算信號的周期,以了解信號的特性。本文將詳細介紹示波器
    的頭像 發(fā)表于 05-17 17:25 ?1529次閱讀