打印

pwm的初始化的一个小程序,大家看看有没有错误,谢谢!

[复制链接]
2096|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenke1988|  楼主 | 2011-1-1 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是mc9s12XS128的芯片,用过飞思卡尔芯片的用该比较熟悉吧大家看看这个程序有没有错误!根据
我查的资料和自己的总接,感觉以下几处有错误!
(1)PWMSCLB=5; //SB=2.5M/2/5=250K  
  这是一个对时钟源B的分频吧!但是B是40M啊!是不是应该是SB=40/2/5=4M???
(2)PWMPER01=5000; // 周期为 500K/5000=50HZ  
  通道0和1级联后,通道周期怎么变为500k了,难道是两个通道周期之和???
(3)PWMDTY01=315; // 占空比为80%  
  占空比应该是(5000-315)/5000=93.7%吧!
void InitPWM()
{
  PWME=0;//通道全部禁止
   
  PWMCLK_PCLK1=1;//时钟选择CLOCKSA
  PWMCLK_PCLK3=0;//时钟选择CLOCKB  
  PWMCLK_PCLK7=0;//时钟选择CLOCKB
   
  PWMPRCLK = 0x04; // A=40M/16=2.5M ,B=40M
  PWMSCLA=5; //SA=2.5M/2/5=250K
  PWMSCLB=5; //SB=2.5M/2/5=250K
   
  PWMPOL_PPOL1=1;//初始电平为高
  PWMPOL_PPOL3=1;//初始电平为高
  PWMPOL_PPOL7=1;//初始电平为高
   
  PWMCAE=0x00;//左对齐输出
   
  PWMCTL=0xf0;//01,23连接
   
   
  PWMPER01=5000; // 周期为 500K/5000=50HZ  
  PWMPER23=10000; // 周期为 40M/10000=4k
  PWMPER67=10000; // 周期为 40M/10000=4k
   
  PWMDTY01=315; // 占空比为80%
  PWMDTY23=0; // 占空比为0%
  PWMDTY67=0; // 占空比为0%
   
  PWME_PWME1=1; //01使能通道
  PWME_PWME3=1; //23使能通道
  PWME_PWME7=1; //67使能通道
}

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
回复次数:0

这是mc9s12XS128的芯片,用过飞思卡尔芯片的用该比较熟悉吧大家看看这个程序有没有错误!根据
我查的资料和自己的总接,感觉以下几处有错误!
(1)PWMSCLB=5; //SB=2.5M/2/5=250K  
  这是一个对时钟源B的分频吧!但是B是40M啊!是不是应该是SB=40/2/5=4M???
(2)PWMPER01=5000; // 周期为 500K/5000=50HZ  
  通道0和1级联后,通道周期怎么变为500k了,难道是两个通道周期之和???
(3)PWMDTY01=315; // 占空比为80%  
  占空比应该是(5000-315)/5000=93.7%吧!
void InitPWM()
{
  PWME=0;//通道全部禁止
   
  PWMCLK_PCLK1=1;//时钟选择CLOCKSA
  PWMCLK_PCLK3=0;//时钟选择CLOCKB  
  PWMCLK_PCLK7=0;//时钟选择CLOCKB
   
  PWMPRCLK = 0x04; // A=40M/16=2.5M ,B=40M
  PWMSCLA=5; //SA=2.5M/2/5=250K
  PWMSCLB=5; //SB=2.5M/2/5=250K
   
  PWMPOL_PPOL1=1;//初始电平为高
  PWMPOL_PPOL3=1;//初始电平为高
  PWMPOL_PPOL7=1;//初始电平为高
   
  PWMCAE=0x00;//左对齐输出
   
  PWMCTL=0xf0;//01,23连接
   
   
  PWMPER01=5000; // 周期为 500K/5000=50HZ  
  PWMPER23=10000; // 周期为 40M/10000=4k
  PWMPER67=10000; // 周期为 40M/10000=4k
   
  PWMDTY01=315; // 占空比为80%
  PWMDTY23=0; // 占空比为0%
  PWMDTY67=0; // 占空比为0%
   
  PWME_PWME1=1; //01使能通道
  PWME_PWME3=1; //23使能通道
  PWME_PWME7=1; //67使能通道
}

相关帖子

沙发
shell.albert| | 2011-1-1 21:35 | 只看该作者
没用过FreeScale,只能帮你顶了.

使用特权

评论回复
板凳
lisiran| | 2011-1-1 23:02 | 只看该作者
凑个热闹

使用特权

评论回复
地板
ayb_ice| | 2011-1-2 09:02 | 只看该作者
不会使用就用配置向导产生初始代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

58

帖子

0

粉丝