注册 登录
亿加合和智能车制作 返回首页

yzb7530326309的个人空间 http://www.znczz.com/?84898 [收藏] [复制] [分享] [RSS]

日志

freescale Kinetis K60的PWM初始化程序

热度 26已有 2489 次阅读2012-2-23 14:28 |个人分类:原创程序| 程序, K60, Kinetis, PWM

center-aligned的代码
输入参数为高电平所占比例,如0.1就是10%
 
void init_PWM(float percent)//
{
 // SIM_BASE_PTR->SCGC5 |= SIM_SCGC5_PORTC_MASK;
 
    //系统使能FTM
    SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;
   
    //端口定义为FTM_CH0
    PORTC_PCR1 = PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK;
   
    //写入保护位使能,只有此为置1,很多寄存器才能写入
    FTM0_MODE |= FTM_MODE_WPDIS_MASK;
   
    //不能使用FTM特殊寄存器
    FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;
   
    //不使能Quadrature Decoder Mode(意义未知)
    FTM0_QDCTRL &= ~FTM_QDCTRL_QUADEN_MASK;
   
    //当前计数值,写入为恢复初始值,读为当前计数值
    FTM0_CNT = 0;
   
    //总计数值
    FTM0_MOD = 60000;
   
    //计数初始值
    FTM0_CNTIN = 0;
   
    //up-down clock & 系统时钟
    FTM0_SC = FTM_SC_CPWMS_MASK | FTM_SC_CLKS(1);
   
    //时钟 Divide by 8
    FTM0_SC |= FTM_SC_PS(11);
   
    //根据手册P960表格选择 Center-aligned PWM High-true
    FTM0_C0SC = FTM_CnSC_ELSB_MASK;
   
    //计数中间变化值
    FTM0_C0V = (uint16)(60000*percent);
 
}
1

路过
1

鸡蛋
21

鲜花

握手

雷人

刚表态过的朋友 (23 人)

发表评论 评论 (4 个评论)

回复 yzb7530326309 2012-2-23 21:04
荔枝糖葫芦: 显然不是Center-aligned模式
CPWMS=1,ELSnB=1,ELSnA=0不是Center-aligned模式吗?我看的手册搞的,P960
回复 而而非无人 2012-2-23 23:47
这种效率不高呀
回复 fanfanstyle 2012-4-5 19:02
求教PORTC_PCR1 = PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK;为什么就可以把端口定义为FTM_CH0
回复 HKD_WCS 2012-4-18 16:28
xx谢谢了

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-4 17:48 , Processed in 0.045897 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部