查看: 2745|回复: 1

[其他] 关于12XEP100 PWM波形频率设置的问题

[复制链接]

该用户从未签到

11

主题

33

帖子

0

注册会员

Rank: 2

积分
145
最后登录
1970-1-1
发表于 2012-7-29 09:54:51 | 显示全部楼层 |阅读模式
本人写了个小程序:通过12XEP100采样的AD值来控制PWM输出波的占空比(频率1Khz左右)。但是无论我如何更改PWM寄存器的值,输出的PWM波频率始终是94K左右。代码如下:
void PLL_init(void) 
{
  SYNR=0x02;     //晶振频率16Mhz
  REFDV=0x81;         
  POSTDIV=0;    // fPLL=fVCO=48MHz  fBUS=24MHz
 
   while(!CRGFLG_LOCK);
   CLKSEL_PLLSEL = 1;  //fPLL选择为系统时钟
 }
 void PWM_init(void)
{   
   
  PWME=0x00;//初始化禁止
  PWMPOL=0x0f;//波形输出先输出高电平
  PWMCLK=0x0f;//通道0 1选择Clock SA  通道2 3选择Clock SB
  PWMPRCLK=0x44; //预分频为ClockA B =fBUS/16=24MHz/16=1.5Mhz
  PWMCAE=0;     //输出波形左对齐
  PWMCTL=0;
  PWMSCLA=0x03; //Clock SA SB =1.5Mhz/2/3=250K
  PWMSCLB=0x03; 
  PWMPER0=0xff; //PWM波形频率为250K/255=980Hz
  PWMPER1=0xff;
  PWMPER2=0xff;
  PWMPER3=0xff;
  PWMDTY0=0;
  PWMDTY1=0;
  PWMDTY2=0;
  PWMDTY3=0;
  PWME=0x0f;
}
请问到底是哪里出了问题?
我知道答案 目前已有0人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-7-31 10:03:06 | 显示全部楼层

    RE:关于12XEP100 PWM波形频率设置的问题

    Polarity = 0 (PPOL x =0)
    Duty Cycle = [(PWMPERx-PWMDTYx)/PWMPERx] * 100%
    • Polarity = 1 (PPOLx = 1)
    Duty Cycle = [PWMDTYx / PWMPERx] * 100%
    这里你按照的应该是第二个计算方式,也就是Duty Cycle =0;
    注意仔细看一下PPOL 和Duty Cycle 的关系。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-2 20:07 , Processed in 0.086036 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表