[Kinetis] 请教K10的PWM使用

[复制链接]
1952|8
 楼主| ddc21ic 发表于 2013-10-30 09:15 | 显示全部楼层 |阅读模式
我用的K10,想在PA4输出,即FTM0_CH1,程序如下,帮忙看看哪里有问题?
示波器没有看到信号,初始化完了,还需要做什么工作吗?谢谢指点

void PWM_Init( void )
{
  PORTA_PCR4 = PORT_PCR_MUX(4);     // 设置引脚A4引脚为FTM0_CH3功能
  SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK; //使能FTM0时钟
  FTM0_MODE |= FTM_MODE_WPDIS_MASK; //写保护禁止

  //设置通道0,工作在左边沿对其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 = 0x0c;//中断禁止,时钟源来自总线时钟48MHz,16分频后得到3MHz,CLKS=01,PS=100,CPWMS=0,递增计数
  FTM0_MODE &= ~1;//FTM0使能
  FTM0_OUTMASK = ~0x02;//通道1输出,屏蔽其它通道
  FTM0_QDCTRL &= ~FTM_QDCTRL_QUADEN_MASK;//禁止正交解码模式
  FTM0_COMBINE = 0;//DECAPEN=0,双边沿捕捉禁止,COMBINE=0,不级联
  FTM0_CNTIN = 0;//FTM0计数器初始值为0
  FTM0_MOD = 29999;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
  FTM0_C1V = 14999;//高电平5ms
  FTM0_CNT = 0;
}
另外,在外面已经把PORTA的时钟打开了.
黄小俊 发表于 2013-10-30 13:44 | 显示全部楼层
不知道。。呵呵
springvirus 发表于 2013-10-30 14:16 | 显示全部楼层
还没实践,不过看手册,飞思片子对寄存器的设置步骤很多~
FSL_TICS_Jeremy 发表于 2013-10-30 14:36 | 显示全部楼层
楼主有安装CW,使用CW的PE可方便的配置PWM输出功能,可以尝试一下!!
 楼主| ddc21ic 发表于 2013-10-30 16:53 | 显示全部楼层
谢谢!
没有安装CW,怎么搞呢
 楼主| ddc21ic 发表于 2013-10-30 16:56 | 显示全部楼层
问题已经解决了,是管脚功能选择错误
FSL_TICS_ZJJ 发表于 2013-10-30 17:54 | 显示全部楼层
对,PORTA_PCR4 = PORT_PCR_MUX(3); 选择为FTM0_CH1.另外,楼主可以的话,建议装个CW,这样你调模块有问题,可以使用PE生成一个,对着查找错误。CW下载地址:
http://www.freescale.com/webapp/sps/site/homepage.jsp?code=CW_HOME&tid=FSH
motodefy 发表于 2013-10-30 20:04 | 显示全部楼层
看样子我也得去装个CW啊····
FSL_TICS_Jeremy 发表于 2013-10-31 11:38 | 显示全部楼层
motodefy 发表于 2013-10-30 20:04
看样子我也得去装个CW啊····

建议可以安装,可以体验一下PE带来的编程好处,可以为编程偷点懒哦!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

211

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部