欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

【有那么點(diǎn)詳細(xì)的CW32學(xué)習(xí)筆記】通用定時(shí)器——輸出比較

CW32生態(tài)社區(qū) ? 來(lái)源: CW32生態(tài)社區(qū) ? 作者: CW32生態(tài)社區(qū) ? 2023-12-28 11:24 ? 次閱讀

本章以CW32通用定時(shí)器為例介紹單片機(jī)定時(shí)器的用法。

定時(shí)器是單片機(jī)中一個(gè)非常傳統(tǒng)且重要的外設(shè),定時(shí)器的 本質(zhì)其實(shí)就是一個(gè)計(jì)數(shù)器 ,只不過(guò)被計(jì)數(shù)的對(duì)象是定時(shí)器的時(shí)鐘源。定時(shí)器要正常工作,需要這幾個(gè)要點(diǎn)步驟: 有時(shí)鐘源輸入、計(jì)數(shù)器工作、有一個(gè)可以比較的值(自動(dòng)重裝載值) 。其工作流程是這樣的:計(jì)數(shù)器會(huì)隨著時(shí)鐘源對(duì)時(shí)鐘源提供的脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)值不斷上漲(或下降),如果計(jì)數(shù)值和自動(dòng)重裝載值一樣,那么計(jì)數(shù)器的值就會(huì)被硬件清零重新計(jì)數(shù),這個(gè)清零重新計(jì)數(shù)被稱為定時(shí)器計(jì)數(shù)溢出,這個(gè)事情會(huì)觸發(fā)一個(gè)中斷,被叫做 定時(shí)器溢出中斷 ,也就是說(shuō),定時(shí)器依靠對(duì)穩(wěn)定的時(shí)鐘源定次數(shù)計(jì)數(shù)來(lái)實(shí)現(xiàn)定時(shí),并且每一個(gè)定時(shí)周期完成都會(huì)產(chǎn)生溢出中斷。

上面講述的就是任何一個(gè)定時(shí)器都會(huì)具備的功能,只要是個(gè)定時(shí)器就會(huì)有,程序上為了方便,關(guān)于上述功能的配置項(xiàng)都被以”base”命名,比如這樣:
圖片1.png

圖片2.png

圖片3.png

看圖中的結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體的成員同樣對(duì)應(yīng)了定時(shí)器相關(guān)的寄存器,由于定時(shí)器本質(zhì)是一個(gè)計(jì)數(shù)器,所以根據(jù)時(shí)鐘源的選擇,定時(shí)器會(huì)有不同的工作模式,如外部計(jì)數(shù)模式、編碼器模式等。這里選擇定時(shí)器模式(就是開頭介紹的那種工作過(guò)程),之后定時(shí)器會(huì)自動(dòng)選擇單片機(jī)自己工作使用的時(shí)鐘作為時(shí)鐘源,連續(xù)計(jì)數(shù)模式下,定時(shí)器會(huì)自動(dòng)重復(fù)執(zhí)行上述溢出中斷的過(guò)程,預(yù)分頻系數(shù)根據(jù)用戶需要進(jìn)行配置,它和下面的重裝載值共同決定定時(shí)器的溢出周期。

以圖中的配置為例,該定時(shí)器的時(shí)鐘源是48MHz,現(xiàn)在需要一個(gè)50Hz(也就是周期為20ms)的定時(shí)器,該定時(shí)器會(huì)每20ms觸發(fā)一次定時(shí)器中斷。在不進(jìn)行干涉的情況下,定時(shí)器每秒會(huì)計(jì)數(shù)48M次,預(yù)分頻系數(shù)設(shè)置成32之后,定時(shí)器每秒計(jì)數(shù)150萬(wàn)次,將重裝載值設(shè)置為30000,定時(shí)器在每計(jì)數(shù)30000次之后觸發(fā)一次中斷,1秒觸發(fā)50次中斷,正好是需要的50Hz頻率。但是填入的時(shí)候不能直接填入30000,因?yàn)?0000是人類從1開始計(jì)算第一個(gè)數(shù)字得出的結(jié)果,計(jì)算機(jī)的第一個(gè)數(shù)字是0,因此需要在最后減1。圖中的代碼直接列出了上述文字表達(dá)的公式,其中的50就是頻率。

隨后設(shè)置好中斷,完成必要的初始化,定時(shí)器的基本功能就可以使用了,中斷服務(wù)函數(shù)可以在函數(shù)列表中找到。

好的,你已經(jīng)掌握了所有單片機(jī)定時(shí)器的基本用法,不過(guò)細(xì)心的小伙伴肯定想過(guò):為什么CW32的定時(shí)器叫ATIM、GTIM和BTIM呢?TIM就是timer,也就是定時(shí)器,A是advanced的縮寫,ATIM就是高級(jí)定時(shí)器,GTIM是通用定時(shí)器,BTIM自然是基本定時(shí)器。這是根據(jù)功能對(duì)定時(shí)器資源進(jìn)行劃分的,這么劃分的好處是不需要查手冊(cè)就能通過(guò)代碼直接看出來(lái)某個(gè)定時(shí)器具備什么功能,基本定時(shí)器只具備上述基本功能,通用定時(shí)器額外擁有捕獲/比較功能,高級(jí)定時(shí)器包含通用定時(shí)器所有的功能,而且還有更多其他功能。理論上來(lái)說(shuō)這些附帶的功能都可以通過(guò)代碼來(lái)實(shí)現(xiàn),但由于很多工業(yè)場(chǎng)景需要用到,所以做到硬件層面會(huì)更加穩(wěn)定,也更方便。

本章使用的是通用定時(shí)器,下面介紹高級(jí)定時(shí)器的捕獲/比較功能,因?yàn)檫@個(gè)功能很常用。

首先需要著重聲明的一點(diǎn)是,捕獲比較功能大概率擁有多個(gè)通道,但是定時(shí)器,也就是上述的基礎(chǔ)功能只有一個(gè),所以即使使用很多個(gè)捕獲比較通道,其所屬定時(shí)器的定時(shí)周期也是相同的。

下面就來(lái)看看通用定時(shí)器的結(jié)構(gòu)框圖,初看這個(gè)圖可能會(huì)不知所措,我們可以先進(jìn)行簡(jiǎn)單的劃分,框圖上半部分的右側(cè)有一個(gè)16位計(jì)數(shù)器,計(jì)數(shù)器可以從左側(cè)選擇輸入的時(shí)鐘源,可以對(duì)輸入進(jìn)行分頻??驁D下半部分展示了定時(shí)器的4個(gè)捕獲比較通道channel1~channel4,通道可以用來(lái)輸出也可以用來(lái)輸入,但同一時(shí)間只能使用輸入|輸出中的一個(gè)功能。筆者剛學(xué)習(xí)單片機(jī)的時(shí)候,不知道通道是什么,總是稀里糊涂的,通道就是讓信號(hào)走的路,放到這里就是說(shuō), 這個(gè)定時(shí)器擁有4個(gè)可以用來(lái)輸出|輸入的電信號(hào)道路 。那這個(gè)通道輸出的是什么東西呢?
圖片4.png

我們都知道,對(duì)電平進(jìn)行周期反轉(zhuǎn)就可以制造方波,而定時(shí)器基本功能就可以實(shí)現(xiàn)這個(gè)效果,只需要在中斷中反轉(zhuǎn)IO電平即可。但是這樣很不方便,比如我想要在不調(diào)整周期的情況下去控制方波的占空比,這種原始的辦法就會(huì)略顯麻煩,需要在中斷內(nèi)修改定時(shí)器的設(shè)置來(lái)實(shí)現(xiàn)。為了避免這種麻煩,出現(xiàn)了一種帶輸出比較功能的定時(shí)器。理念也很簡(jiǎn)單,定時(shí)器自己有一個(gè)在有限區(qū)間內(nèi)周期性增長(zhǎng)歸零的計(jì)數(shù)器,那我直接設(shè)置一個(gè)新的門限值:當(dāng)這個(gè)自增的計(jì)數(shù)值小于門限時(shí),輸出高電平;計(jì)數(shù)值大于門限時(shí),輸出低電平。這就是定時(shí)器的輸出比較功能,對(duì)應(yīng)上圖下半部分右側(cè)的輸出功能。這種方式可以便捷快速地輸出一個(gè)可輕松修改占空比的方波,而這種對(duì)信號(hào)的處理方式,也叫做 脈寬調(diào)制(Pulse-width modulation),簡(jiǎn)稱PWM ,用這種方式輸出的方波也叫做PWM波。

現(xiàn)在來(lái)看使用PWM功能需要進(jìn)行哪些操作。先思考,除去基本的定時(shí)器配置之外,PWM需要用到捕獲比較通道,那必然會(huì)有對(duì)比較捕獲功能相關(guān)寄存器的配置,它需要輸出一個(gè)波,那必定會(huì)有引腳相關(guān)的初始化。

下面看代碼:首先當(dāng)然是對(duì)IO的初始化,相信經(jīng)過(guò)對(duì)前幾章的閱讀,讀者必定是能輕松配置GPIO了,這里著重介紹對(duì)PWM輸出功能的配置。第一步當(dāng)然是找到輸出比較功能的函數(shù),輸出比較的英文是output compare,簡(jiǎn)寫是OC,所以直接找到函數(shù)“通用定時(shí)器_輸出比較初始化”。這個(gè)函數(shù)有3個(gè)參數(shù),按順序分別表示要初始化的定時(shí)器是哪個(gè)、要初始化的通道是哪個(gè)、以及這個(gè)通道的輸出模式。 輸出模式就是設(shè)定:當(dāng)計(jì)數(shù)值大于|小于門限值的時(shí)候,是該輸出高電平還是低電平 。這里設(shè)定的是計(jì)數(shù)值小于門限時(shí)輸出高電平。第二步就是設(shè)置這個(gè)關(guān)鍵的門限值,我們可以直接找到“通用定時(shí)器_設(shè)置比較1”來(lái)設(shè)置門限值,這里我把門限值設(shè)定為重裝載值的一半,最后的效果就是輸出一個(gè)占空比50%的方波。
圖片5.png
圖片6.png

對(duì)占空比的修改不一定需要用到這個(gè)設(shè)置占空比的函數(shù),我們可以直接修改寄存器來(lái)實(shí)現(xiàn) 。單片機(jī)中,存儲(chǔ)這個(gè)門限值的是一個(gè)叫做CCR的寄存器,所以為什么叫CCR?沒(méi)錯(cuò),他原名叫Capture Comparison Register,所以就簡(jiǎn)寫為CCR。定時(shí)器的每一個(gè)通道都有一個(gè)自己的捕獲比較寄存器,所以CCR一共有四個(gè),故而上圖那個(gè)設(shè)置門限值的函數(shù)也有4個(gè),但是由于整個(gè)寄存器都只用來(lái)裝這一個(gè)值,所以我們修改的時(shí)候可以直接操作寄存器修改,就像這樣 CW_GTIM1->CCR1=0 ,我們也可以直接對(duì)這個(gè)賦值號(hào)左側(cè)的部分進(jìn)行自增操作或是別的什么操作都可以,但是寫入操作僅限于作為輸出模式時(shí)使用。

下面就是緊張刺激的驗(yàn)證環(huán)節(jié)了,筆者手上沒(méi)有可以接的用來(lái)發(fā)光的燈泡,所以直接用萬(wàn)用表測(cè)量輸出引腳的電壓來(lái)驗(yàn)證PWM功能,萬(wàn)用表在測(cè)量方波時(shí),會(huì)顯示該方波的平均值,所以如果PWM正常,萬(wàn)用表的直流檔會(huì)顯示1.65V左右的電壓,交流檔會(huì)顯示3.3V的電壓,這里我為了使現(xiàn)象更明顯,在中斷中對(duì)PWM波的占空比進(jìn)行周期性修改。
圖片7.png

經(jīng)過(guò)測(cè)量,占空比50%時(shí),PA6輸出電壓為1.62V,算上誤差這個(gè)在預(yù)期結(jié)果內(nèi)。而加入中斷的代碼后,萬(wàn)用表示數(shù)會(huì)周期性跳變,符合預(yù)期結(jié)果,可以認(rèn)定該配置下,PWM功能正常工作。

審核編輯 黃宇

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

    關(guān)注

    31

    文章

    5372

    瀏覽量

    121294
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5201

    瀏覽量

    214976
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1747

    瀏覽量

    131865
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3256

    瀏覽量

    115450
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    218

    瀏覽量

    752
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    那么點(diǎn)詳細(xì)CW32學(xué)習(xí)筆記】單片機(jī)啟動(dòng)\庫(kù)函數(shù)構(gòu)成

    此篇文章是CW32F030C8T6的參考資料,很詳細(xì),適合初學(xué)者。
    的頭像 發(fā)表于 08-10 11:13 ?1188次閱讀
    【<b class='flag-5'>有</b><b class='flag-5'>那么點(diǎn)</b><b class='flag-5'>詳細(xì)</b>的<b class='flag-5'>CW32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】單片機(jī)啟動(dòng)\庫(kù)函數(shù)構(gòu)成

    【應(yīng)用筆記CW32 電容式觸摸按鍵設(shè)計(jì)指南

    系列小規(guī)模MCU的IO、比較定時(shí)器、高速高精度內(nèi)置RC時(shí)鐘源以及高算力等功能,通過(guò)檢測(cè)電路端子電容的微小變化和波動(dòng),實(shí)現(xiàn)電容式觸摸按鍵功能。其外圍電路簡(jiǎn)單,占用資源比例不高,非常有利于用戶在節(jié)約BO
    的頭像 發(fā)表于 07-04 11:44 ?1133次閱讀
    【應(yīng)用<b class='flag-5'>筆記</b>】<b class='flag-5'>CW32</b> 電容式觸摸按鍵設(shè)計(jì)指南

    那么點(diǎn)詳細(xì)CW32學(xué)習(xí)筆記】看手冊(cè)配置時(shí)鐘樹

    本章針對(duì)CW32F030C8T6的時(shí)鐘樹進(jìn)行詳細(xì)解析,續(xù)第一章啟動(dòng)文件的相關(guān)講解。
    的頭像 發(fā)表于 08-17 14:54 ?1068次閱讀
    【<b class='flag-5'>有</b><b class='flag-5'>那么點(diǎn)</b><b class='flag-5'>詳細(xì)</b>的<b class='flag-5'>CW32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】看手冊(cè)配置時(shí)鐘樹

    單片機(jī)定時(shí)器的用法

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

    那么點(diǎn)詳細(xì)CW32學(xué)習(xí)筆記】模數(shù)轉(zhuǎn)換

    來(lái)說(shuō),想要判斷大小就需要有對(duì)比,因此該數(shù)字指示的電壓大小實(shí)際上是一個(gè)比較的結(jié)果。 ADC將需要測(cè)量的電壓信號(hào)Ut與已知電壓的信號(hào)U作比較,并最終輸出一個(gè)數(shù)字表示Ut相當(dāng)于多少比例的U。 接下來(lái)就可以看看
    的頭像 發(fā)表于 02-29 09:41 ?845次閱讀
    【<b class='flag-5'>有</b><b class='flag-5'>那么點(diǎn)</b><b class='flag-5'>詳細(xì)</b>的<b class='flag-5'>CW32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>

    STM32通用定時(shí)器學(xué)習(xí)筆記

    STM32-通用定時(shí)器學(xué)習(xí)筆記一、通用定時(shí)器學(xué)習(xí)st
    發(fā)表于 08-19 08:48

    【應(yīng)用筆記CW32 自舉程序中使用的 ISP 協(xié)議

    提供的 ISP 模式,通過(guò) UART 串口方便地實(shí)現(xiàn)對(duì) CW32 微控制片上 FLASH主存儲(chǔ)的擦除和燒寫。本應(yīng)用筆記將介紹如何進(jìn)入 CW32
    發(fā)表于 06-06 13:26

    CW32飯盒派開發(fā)板試用體驗(yàn)】+定時(shí)器操作初探討

    CW32F030x6/x8 微控制內(nèi)部集成多達(dá)四個(gè)通用定時(shí)器、三個(gè)基本定時(shí)器和一個(gè)高級(jí)控制定時(shí)器
    發(fā)表于 06-10 22:46

    STM32CubeMX學(xué)習(xí)筆記(23)——通用定時(shí)器接口使用(輸入捕獲測(cè)量脈寬)

    定時(shí),沒(méi)有外部 IO。通用定時(shí)器 TIM2/3/4/5 是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以
    發(fā)表于 11-26 15:51 ?63次下載
    STM32CubeMX<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(23)——<b class='flag-5'>通用</b><b class='flag-5'>定時(shí)器</b>接口使用(輸入捕獲測(cè)量脈寬)

    STM32CubeMX學(xué)習(xí)筆記(5)——基本定時(shí)器接口使用

    定時(shí),沒(méi)有外部 IO。通用定時(shí)器 TIM2/3/4/5 是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以
    發(fā)表于 12-05 13:21 ?6次下載
    STM32CubeMX<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(5)——基本<b class='flag-5'>定時(shí)器</b>接口使用

    CW32定時(shí)器操作講解——輸入捕獲

    CW32定時(shí)器操作講解——輸入捕獲
    的頭像 發(fā)表于 09-27 16:06 ?1131次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>定時(shí)器</b>操作講解——輸入捕獲

    CW32通用輸入輸出端口詳解

    CW32通用輸入輸出端口詳解
    的頭像 發(fā)表于 10-30 17:33 ?1158次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>通用</b>輸入<b class='flag-5'>輸出</b>端口詳解

    應(yīng)用筆記-CW32 自舉程序中使用的 ISP 協(xié)議

    ,通過(guò)UART串口方便地實(shí)現(xiàn)對(duì)CW32微控制片上FLASH主存儲(chǔ)的擦除和燒寫。本應(yīng)用筆記將介紹如何進(jìn)入CW32微控制
    發(fā)表于 06-06 13:37 ?7次下載

    那么點(diǎn)詳細(xì)CW32學(xué)習(xí)筆記通用異步收發(fā)—發(fā)送篇

    本章介紹CW32通用異步收發(fā)的使用。 雖然大部分時(shí)候會(huì)被簡(jiǎn)單稱為“串口”,但實(shí)際上 用“串口”來(lái)指代UART并不正確 。串口對(duì)應(yīng)并口的概念,在串口通信中,數(shù)據(jù)被以二進(jìn)制形式發(fā)送,并且每次發(fā)送都只
    的頭像 發(fā)表于 11-17 17:30 ?846次閱讀
    【<b class='flag-5'>有</b><b class='flag-5'>那么點(diǎn)</b><b class='flag-5'>詳細(xì)</b>的<b class='flag-5'>CW32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】<b class='flag-5'>通用</b>異步收發(fā)<b class='flag-5'>器</b>—發(fā)送篇

    那么點(diǎn)詳細(xì)CW32學(xué)習(xí)筆記】IIC接口-主機(jī)發(fā)送

    例程鏈接 : https://pan.baidu.com/s/1s1XwqDFkO8fK4SRSTKsNhA?pwd=mshk 提取碼 :mshk 本章將介紹CW32的IIC接口,并最終點(diǎn)亮一塊
    的頭像 發(fā)表于 01-11 09:53 ?693次閱讀
    【<b class='flag-5'>有</b><b class='flag-5'>那么點(diǎn)</b><b class='flag-5'>詳細(xì)</b>的<b class='flag-5'>CW32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】IIC接口-主機(jī)發(fā)送