chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

MindSDK為MM32實現(xiàn)了一組TIM樣例工程

冬至子 ? 來源:靈動MM32 MCU ? 作者:靈動MM32 MCU ? 2023-06-30 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

** 引言**

MindSDK為MM32使用星辰處理器內(nèi)核的系列微控制器,實現(xiàn)了一組TIM樣例工程,MindSDK中的TIM模塊對應(yīng)硬件定時器TIM外設(shè)。本文通過講解TIM模塊的樣例工程,介紹TIM模塊的功能和用法。關(guān)于TIM模塊對應(yīng)的驅(qū)動程序,以及TIM外設(shè)模塊硬件的實現(xiàn)細節(jié),可具體查閱MindSDK工程的源文件,以及MM32微控制器(例如MM32F5270)的用戶手冊。

樣例工程

MindSDK中為TIM驅(qū)動設(shè)計的樣例工程包括:

  • tim_basic
  • tim_one_time_run
  • tim_output_compare_pwm
  • tim_input_capture
  • tim_external_trigger_input
  • tim_slave_mode
  • tim_slave_mode_encoder
  • tim_comp_output_compare_pwm

其中,tim_basic、tim_one_time_run、tim_output_compare_pwm、tim_input_capture和tim_external_trigger_input 分別演示了定時器最典型的功能,包括定時、輸出比較、輸入捕捉,以及對外部脈沖進行計數(shù)等。另外,還有一些不大典型,用在特殊應(yīng)用場景的功能,例如,使用“從機”模式干預(yù)常規(guī)的定時器計數(shù),通過硬件實現(xiàn)互補的PWM輸出(常用于電機控制應(yīng)用中控制驅(qū)動橋)。

tim_basic

tim_basic 描述了使用TIM模塊最基本的方式,周期定時器。在樣例工程中,通過 TIM_Init() 函數(shù),配置一個選定的TIM外設(shè)模塊的計數(shù)引擎,為連續(xù)計數(shù)模式 TIM_PeriodMode_Continuous ,并指定計數(shù)周期為 APP_TIM_UPDATE_PERIOD 。然后,啟用選定TIM外設(shè)模塊對應(yīng)的NVIC中斷。最后,通過調(diào)用 TIM_Start() 驅(qū)動函數(shù),啟動定時器開始計數(shù)。

每當(dāng)定時器計數(shù)到達預(yù)設(shè)的計數(shù)周期值后,計數(shù)值折返為0,重新開始計數(shù)。同時,TIM會觸發(fā)NVIC中斷, tim_basic 樣例工程中為TIM中斷實現(xiàn)的服務(wù)程序中,實現(xiàn)了通過串口發(fā)送字符 * 的操作。

最終程序運行時,可以在PC機上的串口通信終端看到以指定周期輸出的字符 * ,驗證定時器中斷被周期觸發(fā)。

tim_one_time_run

tim_one_time_run 相對于 tim_basic 樣例工程實現(xiàn)周期觸發(fā)定時器中斷服務(wù),實現(xiàn)了每次啟動定時器后,僅觸發(fā)一次中斷的用法。

其實現(xiàn)原理,是在 tim_basic 配置定時器周期運行的基礎(chǔ)之上,修改初始化配置 .PeriodMode 的值為 TIM_PeriodMode_OneTimeRun。之后,每次通過 TIM_Start() 函數(shù)啟動定時器后,定時器僅計數(shù)一個周期后,觸發(fā)中斷,然后停止計數(shù)。

實際運行程序時,用戶在串口調(diào)試終端中每次輸入任意字符,程序均會調(diào)用一次 TIM_Start() 函數(shù),延時指定計數(shù)周期后,在定時器中斷服務(wù)程序中打印字符 * 到串口終端界面。

tim_output_compare_pwm

tim_output_compare_pwm 實現(xiàn)的是一個通過輸出比較功能產(chǎn)生PWM輸出信號的樣例工程。

其實現(xiàn)原理,是在 tim_basic 基礎(chǔ)之上,額外通過驅(qū)動函數(shù) TIM_EnableOutputCompare(),啟動并配置給定通道 BOARD_TIM_CHANNEL 為輸出比較功能。其中,指定通道的配置屬性 .PinPolarity 的值為 TIM_PinPolarity_Rising,.RefOutMode 值為 TIM_OutputCompareRefOut_FallingEdgeOnMatch,設(shè)定同通道綁定的硬件引腳信號在計數(shù)初始的階段為高電平,當(dāng)計數(shù)值達到通道數(shù)據(jù)寄存器中設(shè)定的匹配值時,輸出下降沿信號,輸出低電平。

實際運行程序時,用戶通過 TIM_Init() 函數(shù)配置定時器的基本定時單元,對應(yīng)的計數(shù)周期即為輸出PWM信號波形的周期,啟用輸出比較的指定通道綁定的引腳即為輸出PWM信號的引腳,通過 TIM_PutChannelValue() 函數(shù)設(shè)定輸出波形在整個周期下降沿的位置,進而調(diào)整PWM輸出信號波形的占空比。通道引腳在每次定時器周期的開始輸出為高電平,在周期內(nèi)設(shè)定的匹配值的位置產(chǎn)生下降沿,轉(zhuǎn)而輸出低電平,再計數(shù)周期結(jié)束折返為0時,恢復(fù)為高電平。如此周而復(fù)始,實現(xiàn)輸出PWM信號波形。

tim_input_capture

tim_intput_capture 實現(xiàn)的是一個使用定時器為外部輸入的觸發(fā)信號記錄時刻的樣例工程。

其實現(xiàn)原理,是在 tim_basic 基礎(chǔ)之上,額外通過驅(qū)動函數(shù) TIM_EnableInputCapture(),啟動并配置給定通道 BOARD_TIM_CHANNEL 為輸入捕獲功能。其中,指定給定通道的捕獲輸入信號極性 .PinPolarity 的值為 TIM_PinPolarity_Falling,表示在該給定通道綁定的引腳上出現(xiàn)下降沿信號時,觸發(fā)捕獲事件。此時,捕獲計數(shù)器當(dāng)前的計數(shù)值到給定通道的通道數(shù)據(jù)寄存器中,這個值就可以作為該捕獲事件的時刻記錄。

實際運行程序時,用戶通過 TIM_Init() 函數(shù)配置定時器的基本定時單元,此時定時器的計數(shù)周期,就是可能捕獲時刻值的有效范圍。然后在電路上使用一個按鍵接入到指定通道綁定的引腳上,模擬產(chǎn)生下降沿觸發(fā)信號。當(dāng)按下按鍵時,觸發(fā)信號到來,觸發(fā)程序中的通道事件中斷服務(wù)程序,在其中可以通過 TIM_GetChannelValue() 函數(shù)讀取本次輸入捕獲事件發(fā)生時的計數(shù)時刻。

tim_external_trigger_input

相對于 tim_basic 中,使用芯片內(nèi)部的時鐘源脈沖進行計數(shù),tim_external_trigger_input 樣例工程可以對用戶指定引腳上的脈沖進行計數(shù),計數(shù)的脈沖來自于芯片外部的信號源。

其實現(xiàn)原理,是在 tim_basic 基礎(chǔ)上,額外通過驅(qū)動函數(shù) TIM_EnableExtTriggerIn(),配置啟用外部對外部輸入的脈沖信號進行計數(shù)的功能,固定從TIM外設(shè)模塊的 ETR 引腳捕獲來自外部的脈沖信號。每次捕獲到一個脈沖信號,等同于使用芯片內(nèi)部時鐘源的脈沖,計數(shù)器自增計數(shù)。此時,還可以基于這個新的時鐘源,使用周期計數(shù)中斷等功能。

實際運行程序時,用戶可以將一個按鍵接入到指定TIM外設(shè)模塊的 ETR 引腳上,用手動按按鍵產(chǎn)生脈沖信號。在程序中指定定時器的計數(shù)周期 APP_TIM_UPDATE_PERIOD 值為2,意味著每輸入兩次脈沖,就會觸發(fā)一次定時器周期中斷。

tim_slave_mode

tim_slave_mode 實現(xiàn)的是一個使用從機TIM從機模式的樣例工程。實際上,這里的“從機”同從屬關(guān)系的的“從”是沒關(guān)系的,而是可以理解為更豐富的可由用戶控制的工作模式。

tim_slave_mode 工程,在 tim_basic 基礎(chǔ)上,額外通過驅(qū)動函數(shù) TIM_EnableSlaveMode(),配置了其中一種“從機”模式:使用 ETR 作為控制信號(下降沿)的引腳 TIM_SlaveIn_Alt7,當(dāng)控制信號到來時,選擇暫停計數(shù) TIM_SlaveResp_Alt5。

實際運行程序時,用戶可以將一個按鍵接入到指定TIM外設(shè)模塊的 ETR 引腳上,用手動按按鍵產(chǎn)生電平控制信號。當(dāng)按下按鍵時,控制定時器暫停計數(shù),松開按鍵時,定時器恢復(fù)計數(shù)。正常計數(shù)到一整個周期時,會產(chǎn)生中斷。如此,當(dāng)按下按鍵時,會影響定時器中斷的周期。

tim_slave_mode_encoder

tim_slave_mode_encoder 工程基于 tim_input_capture 工程,通過額外調(diào)用 TIM_EnableSlaveMode() 并傳入一組特定的配置,啟用了一種特殊的“從機”模式,從而實現(xiàn)了編碼器的功能。

tim_comp_output_compare_pwm

tim_comp_output_compare_pwm 基于tim_output_compare_pwm 工程,通過額外的驅(qū)動函數(shù) TIM_EnableCompOutput(),實現(xiàn)了PWM信號的互補輸出,這意味著當(dāng)使用正常的輸出比較通道輸出PWM信號時,還開啟了硬件設(shè)計的,使用對應(yīng)的另一個通道,輸出電平極性剛好相反的PWM信號。

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

    關(guān)注

    48

    文章

    8342

    瀏覽量

    164314
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20242

    瀏覽量

    251685
  • 電機控制
    +關(guān)注

    關(guān)注

    3600

    文章

    2125

    瀏覽量

    277424
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3367

    瀏覽量

    123341
  • PWM輸出
    +關(guān)注

    關(guān)注

    1

    文章

    68

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    MM32和BLM32是什么關(guān)系?

    MM32和BLM32是什么關(guān)系?兩家的手冊一樣?
    發(fā)表于 12-06 13:28

    MM32 TIM編碼器模式

    來源 靈動MM32、編碼器功能簡介在馬達類控制應(yīng)用中,正交編碼器可以反饋馬達的轉(zhuǎn)子位置及轉(zhuǎn)速信號。MM32系列MCU集成了正交編碼器接口,便于客戶使用。先簡單回顧下編碼器原理:如果兩個信號相位差
    發(fā)表于 02-08 16:40

    MM32 六步PWM輸出

    `來源 靈動MM32針對電動馬達方案中需要使用到六步PWM輸出功能,本篇文章將向大家介紹如何使用MM32L0系列MCU實現(xiàn)六步PWM輸出功能。 MM32高級控制定時器
    發(fā)表于 03-15 17:16

    利他、誠信、努力的MM32 MCU —— 2018靈動MM32 協(xié)作大會成功舉辦

    博士的觀點得到了全場來賓的高度認同和稱贊。隨后,靈動微電子MCU產(chǎn)品事業(yè)部總經(jīng)理婁方超先生,大家介紹靈動MM32 MCU市場、研發(fā)及新產(chǎn)品的最新動態(tài)。婁方超首先和大家分享
    發(fā)表于 08-31 09:55

    請問把DDR的數(shù)據(jù)線的高8位分一組,低8位分一組,內(nèi)等長,這兩線的長度是不是要一樣長?

    如果我把DDR的數(shù)據(jù)線的高8位分一組,低8位分一組,內(nèi)等長,這兩線的長度是不是要
    發(fā)表于 06-14 05:35

    MM32 MiniBoard開發(fā)板的資料合集免費下載

    MM32 MiniBoard是為了用戶快速上手、了解學(xué)習(xí)MM32系列MCU的塊入門級開發(fā)板;它提供豐富且靈活的外接排針以及常用的板載外設(shè),用戶在使用過程中可以通過Arduino接口
    發(fā)表于 07-29 08:00 ?23次下載
    <b class='flag-5'>MM32</b> MiniBoard開發(fā)板的資料合集免費下載

    時控開關(guān)怎么設(shè)置兩天一組循環(huán)?

    目前時控開關(guān)無法實現(xiàn)兩天控制不同的開關(guān)時間一組,進行循環(huán)。 時控開關(guān)最長可以控制168個小時,也就是個禮拜,是按個星期進行循環(huán)控制的
    發(fā)表于 09-24 11:53 ?2840次閱讀

    MM32 USB 功能學(xué)習(xí)筆記——WebDFU

    本節(jié)我們將講解如何在MM32 MCU實現(xiàn)WebDFU功能。
    發(fā)表于 02-09 09:34 ?1次下載
    <b class='flag-5'>MM32</b> USB 功能學(xué)習(xí)筆記——WebDFU

    MM32 USB 功能學(xué)習(xí)筆記——WebDFU

    前面我們介紹新出USB設(shè)備類型WebUSB,其中使用MM32 MCU實現(xiàn)WebUSB功能。既然可以通過網(wǎng)頁與USB設(shè)備通信,那是否可以做別的功能,比如USB-DFU,當(dāng)然是可以的,我們通過網(wǎng)頁進行DFU功能,即WebDFU功能
    發(fā)表于 02-09 10:39 ?5次下載
    <b class='flag-5'>MM32</b> USB 功能學(xué)習(xí)筆記——WebDFU

    Project vlayoutListContainer提供一組布局

    Project vlayout 是 ListContainer 的個強大的 LayoutManager 擴展,它為 ListContainer 提供一組布局。當(dāng)網(wǎng)格、列表和其他布局在同
    發(fā)表于 03-21 15:12 ?1次下載

    MindSDK中FlexCAN驅(qū)動程序及工程

    32F5270和MM32F0140微控制器,其中就有FlexCAN外設(shè)模塊的驅(qū)動程序以及工程,以及對CAN總線通信協(xié)議CANopen的適配工程
    的頭像 發(fā)表于 06-23 15:41 ?2307次閱讀
    <b class='flag-5'>MindSDK</b>中FlexCAN驅(qū)動程序及<b class='flag-5'>樣</b><b class='flag-5'>例</b><b class='flag-5'>工程</b>

    MindSDK應(yīng)用基礎(chǔ)—TIM模塊

    MindSDKMM32使用星辰處理器內(nèi)核的系列微控制器,實現(xiàn)一組
    的頭像 發(fā)表于 06-29 17:16 ?1810次閱讀

    MindSDK應(yīng)用基礎(chǔ)—SPI模塊簡介

    MindSDKMM32主流的微控制器,實現(xiàn)系列SPI驅(qū)動的
    的頭像 發(fā)表于 08-10 17:14 ?1895次閱讀

    MindSDK應(yīng)用基礎(chǔ)—ADC模塊

    MindSDKMM32主流的微控制器,實現(xiàn)一組ADC
    的頭像 發(fā)表于 08-17 17:16 ?1890次閱讀

    MindSDK應(yīng)用基礎(chǔ)——TIM模塊

    MindSDK應(yīng)用基礎(chǔ)——TIM模塊
    的頭像 發(fā)表于 10-25 16:25 ?1315次閱讀