日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

K60学习笔记(二)——FTM多功能定时器模块

發布時間:2023/12/9 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 K60学习笔记(二)——FTM多功能定时器模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FTM模塊全稱:FlexTimer Module

FTM是一個有2~8通道定時器,支持數據捕獲,輸出比較,輸出PWM波等功能。


一、FTM寄存器


在所學習K60芯片中,FTM只有三個模塊,即FTM0,FTM1,FTM2。


FTMx_SC(Status and Control)?? configure(配置)

SC包含溢出標志位和用于配置中斷使能的控制位。FTM配置,時鐘源和各種預先設定的都將直接影響這個模塊的所有通道。


FTMx_CNT(Counter) 計數初值寄存器

簡單說,就是記錄你從多少開始計數。

復位清零該CNT寄存器。任何對FTM計數器的寫入操作,都會復位計數器,計數器的值重新回到CNTIN指定值。也可以使用FTM的同步功能,讓計數器重新回到初值。各通道輸出也回到初始值。

當BDM有效,可讀取當前值。


FTMx_CnSC(Channel(n) Status and Control) (或寫為CSC寄存器)

CnSCH包含了通道中斷狀態標志和配置中斷使能、通道配置、引腳功能的位。


FTMx_CnV(Channel(n) Value) 通道值寄存器

這個寄存器包含了FTM計數值捕捉

當CNT計數值與當前通道寄存器中存儲的值相等時,PWM輸出由高電平改為低電平,直到下一個PWM周期來臨,成為高電平

改變CnV的值,新的值并不會立即生效,而是到一個周期結束,FTM計數器從MOD變為CNTIN時,CnV值才生效。


FTMx_MOD(modulo register),模數寄存器

當FTM計數器達到設置的模數時,溢出標志位在下一個時鐘置1。


FTMx_MODE(Feature Mode Selection),模式選擇寄存器


FTMx_CNTIN(Counter Initial Value) 計數初值寄存器


FTMx_STATUS(Capture and Compare Status)


FTMx_SYNC(Synchronization)





例程:

void FTM_Init(void) { PORTA_PCR6=PORT_PCR_MUX(3);//設置引腳A6引腳為FTM0_CH3的功能 SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;//使能FTM0時鐘 FTM0_MODE|=FTM_MODE_WPDIS_MASK;//寫保護禁止 FTM0_C3SC|=FTM_CnSC_ELSB_MASK; FTM0_C3SC&=~FTM_CnSC_ELSA_MASK; FTM0_C3SC|=FTM_CnSC_MSB_MASK; FTM0_SC=0x0C; FTM0_MODE&=~1; FTM0_OUTMASK=0xF7; FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK; //禁止正交解碼模式 FTM0_COMBINE=0; //雙邊沿捕捉禁止,COMBINE=0; FTM0_CNTIN=0; FTM0_MOD=37499; FTM0_C3V=5265; FTM0_CNT=0; FTM0_C3SC|=FTM_CnSC_ELSA_MASK; FTM0_C3SC|=FTM }


上述例程為總線時鐘60MHz,經過FTM分頻到3.75MHz,FTM遞增計數,周期10ms,高電平時間1.5ms。使用FTM0_CH3通道,由PAT6引腳輸出。


二、PWM產生


1、PWM產生原理


PWM周期=(MOD-CNTIN+1)x計數器周期


PWM占空比=(CnV-CNTIN)/PWM周期


計數器周期由SC決定,因為SC寄存器負責選擇時鐘源(系統時鐘、固定頻率時鐘以及外部時鐘),同時負責輸入頻率的分頻系數。


工作過程:

SC決定了當前FTM模塊時鐘頻率后,CNT寄存器從CNTIN中獲得計數初值,開始計數,直到計數到MOD寄存器中的值后停止,由此產生了一個PWM周期。

上述過程指導了PWM周期決定因素。而PWM作為脈沖,脈寬由CnV決定,當CNT計數器計數到CnV中的值時,PWM輸出由高電平變為低電平,直到CNT計數到MOD寄存器中的模值時,一個PWM周期結束,下個周期開始,PWM輸出又變為高電平。


FTM有多少個通道,就可以控制多少個不同的CnV,從而輸出多少個不同占空比的PWM。


2、PWM程序



以下部分摘自學習過程中閱讀的技術文檔。

39.1.2?? 特征

FTM模塊可以選擇時鐘。


正交解碼(Quadrature decoder)


39.3 存儲器映射和寄存器聲明

計算機最重要的功能單元之一是Memory。Memory是眾多存儲單元的集合,為了使CPU準確地找到存儲有某個信息的存儲單元,必須為這些單元分配一個相互區別的“身份證號”,這個“身份證號”就是地址編碼。在嵌入式處理器內,集成了多種類型的Memory,通常,我們稱同一類型的Memory為一個Memory Block。一般情況下,處理器設計者會為每一個Memory Block分配一個數值連續、數目與其存儲單元數相等、以16進制表示的自然數集合作為該Memory Block的地址編碼。這種自然數集合與Memory Block的對應關系,就是Memory Map(存儲器映射)。

該部分為FTM寄存器模塊提供了詳細的介紹。

39.3.1 Memory Map


參考資料:http://blog.csdn.net/u012802702/article/details/45560467?





總結

以上是生活随笔為你收集整理的K60学习笔记(二)——FTM多功能定时器模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。