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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

kinetis FTM 分析笔记

發布時間:2023/12/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kinetis FTM 分析笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 平臺MK60DN512ZVLQ10,以下簡稱K60。

? ? 首先簡單說下什么是FTM,在K60中,FTM模塊是一個8通道的16位定時器,可以實現input capture, output compare, and the generation of PWM signals to control electric motor and power management applications。即輸入捕捉、輸出比較、PWM輸出控制電機、能源管理。計數有無符號和有符號(即有符號可以用負數計數)兩種方式。

?給FTM的分頻數有,1、2、4、8、16、32、64,or 128。

? ??寄存器(以FTM0通道為例)

?//--------------------------------------------------------------------------------------------------------*
//函數名: FTM_init_ForPWM ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
//功 ?能: 初始化PWM ?左對齊 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *?
//參 ?數: 無 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*
//返 ?回: 無 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*
//說 ?明: PWM輸出引腳A4和A6,往右多空4格的語句是配置FTM0_CH1功能 ? ? ? ? ?*
//--------------------------------------------------------------------------------------------------------*
void FTM_init_ForPWM(void)
{
? ? PORTA_PCR6= PORT_PCR_MUX(3) | PORT_PCR_DSE_MASK;; // 設置引腳A6引腳為FTM0_CH3功能且引腳 High drive strength
? ? ? ? PORTA_PCR4= PORT_PCR_MUX(3) | PORT_PCR_DSE_MASK;; // 設置引腳A4引腳為FTM0_CH1功能且引腳 High drive strength ?
? ? SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;//使能FTM0時鐘?
? ? FTM0_MODE |= FTM_MODE_WPDIS_MASK;//寫保護禁止?
? ??
? ? //設置通道0的3通道,工作在左邊沿對其PWM模式//MSB=1,ELSB:ELSA=10 ?
? ? FTM0_C3SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左對齊,先高后低 ?
? ? FTM0_C3SC &= ~FTM_CnSC_ELSA_MASK; ?
? ? FTM0_C3SC |= FTM_CnSC_MSB_MASK;//MSB=1,模式選擇邊沿對齊
? ? ? ? //設置通道0的1通道,工作在左邊沿對其PWM模式//MSB=1,ELSB:ELSA=10 ?
? ? ? ? FTM0_C1SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左對齊,先高后低 ?
? ? ? ? FTM0_C1SC &= ~FTM_CnSC_ELSA_MASK; ?
? ? ? ? FTM0_C1SC |= FTM_CnSC_MSB_MASK;//MSB=1,模式選擇邊沿對齊
? ??
? ? FTM0_SC=0x08;//中斷禁止,時鐘源來自bus/Peripheral clock ?60MHz,1分頻后得到60MHz,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //CLKS=01,PS=000,CPWMS=0,遞增計數?
? ??
? ? FTM0_MODE &= ~FTM_MODE_FTMEN_MASK; //FTM0使能
? ??
? ? ? ? FTM0_OUTMASK = ~(FTM_OUTMASK_CH3OM_MASK | FTM_OUTMASK_CH1OM_MASK); //通道1、3輸出,屏蔽其它通道?
? ? FTM0_QDCTRL &= ~FTM_QDCTRL_QUADEN_MASK;//禁止正交解碼模式
? ? FTM0_COMBINE=0;//DECAPEN=0,雙邊沿捕捉禁止,COMBINE=0,不級聯 ?
? ? FTM0_CNTIN=0;//FTM0計數器初始值為0
? ? FTM0_MOD=7499;//結束值,周期為(MOD-CNTIN+1)*時鐘周期=0.125ms(即8K的PWM),低16位可用
? ? FTM0_C3V=2500;//高電平0.5ms,低16位可用
? ? ? ? FTM0_C1V=3750;//高電平0.5ms,低16位可用 ??
? ? FTM0_CNT=0;
}

?

其中MCG=180M

core/system = MCG, bus/Peripheral clock??= MCG/3, FlexBus = MCG/3, Flash clock= MCG/8

?

特別提醒:英文資料里有出錯誤,P.957 FTMx_SC寄存器4-3位 CLKS=01時,時鐘源是?Peripheral clock/Bus clock

?

總結

以上是生活随笔為你收集整理的kinetis FTM 分析笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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