色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

MindSDK應用基礎—TIM模塊樣例

靈動MM32MCU ? 來源:靈動MM32MCU ? 2023-06-29 17:16 ? 次閱讀

引言

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

樣例工程

MindSDK中為TIM驅動設計的樣例工程包括:

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 分別演示了定時器最典型的功能,包括定時、輸出比較、輸入捕捉,以及對外部脈沖進行計數等。另外,還有一些不大典型,用在特殊應用場景的功能,例如,使用“從機”模式干預常規的定時器計數,通過硬件實現互補的PWM輸出(常用于電機控制應用中控制驅動橋)。

tim_basic

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

每當定時器計數到達預設的計數周期值后,計數值折返為0,重新開始計數。同時,TIM會觸發NVIC中斷, tim_basic 樣例工程中為TIM中斷實現的服務程序中,實現了通過串口發送字符*的操作。

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

tim_one_time_run

tim_one_time_run 相對于 tim_basic 樣例工程實現周期觸發定時器中斷服務,實現了每次啟動定時器后,僅觸發一次中斷的用法。

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

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

tim_output_compare_pwm

tim_output_compare_pwm 實現的是一個通過輸出比較功能產生PWM輸出信號的樣例工程。

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

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

tim_input_capture

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

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

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

tim_external_trigger_input

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

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

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

tim_slave_mode

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

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

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

tim_slave_mode_encoder

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

tim_comp_output_compare_pwm

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





審核編輯:劉清

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

    關注

    48

    文章

    7646

    瀏覽量

    151869
  • 處理器
    +關注

    關注

    68

    文章

    19404

    瀏覽量

    230774
  • 電機控制
    +關注

    關注

    3539

    文章

    1896

    瀏覽量

    269138
  • PWM輸出
    +關注

    關注

    1

    文章

    66

    瀏覽量

    5207

原文標題:靈動微課堂 (第261講)|MindSDK應用基礎——TIM模塊樣例

文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Hardware Semaphore 2 工程

    介紹了Hardware Semaphore 2的使用方法以及工作模式(Direct和Indirect),本工程基于CCSv4,可在C6678EVM板上運行,內附模塊介紹以及代碼流程的PPT文件。
    發表于 06-21 14:21

    7改成數碼管秒表顯示TIM5~TIM7不行

    我把7改成數碼管秒表顯示,試了TIM2,TIM3,TIM4都可以,但試TIM5~TIM7就不行
    發表于 05-21 21:06

    MindSDKTIM定時器測試步驟分享

    定時器是MCU常用的,這篇測試下MindSDK例程下的tim定時器。開發環境按照論壇的教程安裝完成,下面就直接打開例程編譯。1、例程下載:網站注冊下載MindSDK例程包。2、打開TIM
    發表于 08-23 15:37

    STM32單片機TIM模塊定時器向上溢出的輸出比較

    首先有一點需要注意:FWLib固件庫目前的最新版應該是V2.0.x,V1.0.x版本固件庫中,TIM1模塊被獨立出來,調用的函數與其他定時器不同;在V2.0系列版本中,取消了TIM1.h,所有
    發表于 11-22 16:20 ?3752次閱讀

    AMetal適配:以TIM來展示如何開發通用驅動外設代碼

    基于定時器、RTC、WDT本質上均是計數器的共性,本次將這三種通用外設統一為TIM。以TIM,來展示如何開發通用驅動外設代碼。對于AMetal所提供的標準層驅動文件,均存放于ametal
    的頭像 發表于 05-12 17:08 ?1909次閱讀
    AMetal適配:以<b class='flag-5'>TIM</b>為<b class='flag-5'>例</b>來展示如何開發通用驅動外設代碼

    MindSDK概述、使用方法及應用案例

    MindSDK(mm32-mcu-sdk)是由靈動官方的軟件團隊開發和維護的基于靈動微控制器的軟件開發平臺。
    的頭像 發表于 08-12 09:10 ?1483次閱讀

    基于OpenHarmony開發的步驟

    單絲不成線,獨木不成林,一個社區想要健康蓬勃發展離不開社區參與者的持續貢獻。而社區貢獻點有很多種,本文以貢獻OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)開發,圍繞以下5個問題,帶大家了解
    的頭像 發表于 09-20 10:30 ?1407次閱讀

    31107液晶C語言編程

    31107液晶 C語言編程
    發表于 10-17 15:17 ?4次下載

    MindSDK搭建Keil MDK開發環境

    本文介紹基于Windows操作系統構建嵌入式系統開發環境過程中需要使用的主要軟件Keil MDK,并對一些需要特別關注的要點重點說明。Keil MDK是靈動官方的軟件開發平臺MindSDK支持的主要編譯工具之一。
    的頭像 發表于 05-04 10:42 ?1688次閱讀
    為<b class='flag-5'>MindSDK</b>搭建Keil MDK開發環境

    MindSDK中FlexCAN驅動程序及工程

    和MM32F0140微控制器,其中就有FlexCAN外設模塊的驅動程序以及工程,以及對CAN總線通信協議CANopen的適配工程。本文將介紹MindSDK中FlexCAN驅動程序及
    的頭像 發表于 06-23 15:41 ?1311次閱讀
    <b class='flag-5'>MindSDK</b>中FlexCAN驅動程序及<b class='flag-5'>樣</b><b class='flag-5'>例</b>工程

    MindSDK為MM32實現了一組TIM工程

    MindSDK為MM32使用星辰處理器內核的系列微控制器,實現了一組TIM工程,MindSDK中的T
    的頭像 發表于 06-30 17:32 ?916次閱讀

    STM32 TIM—基本定時器

    STM32F4xx系列控制器有共有14個TIM定時器。其中2個高級控制定時器TIM1和TIM8、10 個通用定時器TIM2TIM5和TIM9TIM
    的頭像 發表于 07-22 17:05 ?5195次閱讀
    STM32 <b class='flag-5'>TIM</b>—基本定時器

    MindSDK應用基礎—SPI模塊簡介

    MindSDK為MM32主流的微控制器,實現了一系列SPI驅動的工程。本文通過講解 SPI 模塊
    的頭像 發表于 08-10 17:14 ?1095次閱讀

    MindSDK應用基礎—ADC模塊

    MindSDK為MM32主流的微控制器,實現了一組ADC工程。本文通過講解ADC模塊
    的頭像 發表于 08-17 17:16 ?964次閱讀

    MindSDK應用基礎——TIM模塊

    MindSDK應用基礎——TIM模塊
    的頭像 發表于 10-25 16:25 ?649次閱讀
    主站蜘蛛池模板: ca88亚洲城娱乐 | 亚洲 小说 欧美 激情 另类 | 亚洲欧美日本国产在线观18 | 国产人成高清在线视频99 | 亚洲 色 欧美 爱 视频 日韩 | 嫩草影院久久国产精品 | 亚洲区偷拍自拍29P 亚洲区视频在线观看 | 3D动漫网站HOXXXxes | 护士美女照片 | 99re热精品视频国产免费 | 免费亚洲视频 | 纯肉无码AV在线看免费看 | 菠萝蜜国际一区麻豆 | 精品国产九九 | 伊人网中文字幕 | 国产精品久久自在自2021 | 久久伊人天堂视频网 | 夜色爽爽爽久久精品日韩 | 午夜理论在线观看不卡大地影院 | 办公室里做好紧好爽H | 国产午夜人做人免费视频中文 | 国产精品亚洲AV毛片一区二区三区 | 亚洲这里只有精品 | 十九禁啊啪射视频在线观看 | 伊人国产精品 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 日韩在线中文字幕无码 | 久久中文字幕人妻熟AV女蜜柚M | 夜夜国产亚洲视频香蕉 | 日本亚欧热亚洲乱色视频 | 耻辱の奴隷淑女中文字幕 | AV97最新无码喷水叫床 | 亚洲视频一区在线 | 中文字幕不卡在线视频 | 性xxxx直播放免费 | 精品国产午夜福利在线观看蜜月 | JIZZ学生13| 含羞草影院免费区 | 偷偷鲁青春草原视频 | 接吻吃胸摸下面啪啪教程 | 97无码人妻精品1国产精东影业 |