智能车制作

标题: 新手求解有关PWM程序的频率与设定不符 [打印本页]

作者: 丶_SHOPONG__    时间: 2013-4-21 15:22
标题: 新手求解有关PWM程序的频率与设定不符
才弄XS128不久,弄了很久的PWM模块了,时钟无法正确输出想要的频率和占空比。请大神指教一下。


我的程序如下:
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


#include"PWM.h"
#include"PLL.h"

//==============函数声明=========================//
void  PWM_Init(void);
void  PLL_Init(void);


//==============PLL_Init()函数=====================//
  void  PLL_Init(void)   {
     CLKSEL=0x00;
     PLLCTL&=0xbf;                                                                                  //倍频后产生64M的频率。
     SYNR=0x03;
     REFDV=0x01;
     PLLCTL|=(1<<6);
     asm     NOP;
     asm     NOP;
     asm     NOP;
     while(CRGFLG_LOCK==1) ;                                                             //CRGFLG寄存器中LOCK置位表示稳定
     CLKSEL_PLLSEL=1;

  }

   //==============PWM_Init函数=====================//
void  PWM_Init(void) {
PWME=0x00;                                                                                               //总线时钟为32M
PWMPRCLK=0x44;                                                                                     //内部时钟频率均为2M
PWMCLK=0xff;                                                                                            //所有通道都以0.1 4.5为SA,2.3.6.7为SB时钟
PWMSCLA=4;                                                                                              //SA时钟为250KHz
PWMSCLB=5;                                                                                              //SB时钟为200Khz
PWMPOL=0xff;                                                                                          //极性为输出为高电平
PWMCAE=0x00;                                                                                         //输出为左对齐输出
PWMCTL=0xff;                                                                                            //全部级联
PWMPER67= 200;                                                                                      //6.7通道的输出频率为1KHZ
PWMPER45=100;                                                                                      //4.5通道的输出频率为2.5KHZ
PWMPER23=400;                                                                                       //2.3通道的输出频率为0.5KHZ/ PWMPER01=200;                                                                                       //0.1通道的输出频率为1.25Khz
PWMDTY67= 40;                                                                                      //6.7通道占空比为20%
PWMDTY45= 80;                                                                                       //5.4 通道占空比为80%
PWMDTY23= 200;                                                                                //2.3通道占空比为  50%
PWMDTY01= 80;                                                                                       //1.0占空比为40%
PWME=0xff;



}

//===============主函数=========================//
void main(void) {
PLL_Init() ;
PWM_Init() ;
while(1);





}


求大神帮帮忙,实在不知道怎么办呢。






作者: 穆旦阿斗    时间: 2013-4-21 19:49
慢慢的一个一个对吧  首先看看PLL
作者: 丶_SHOPONG__    时间: 2013-4-21 20:47
穆旦阿斗 发表于 2013-4-21 19:49
慢慢的一个一个对吧  首先看看PLL

嗯,谢了,已经找出来问题了。弄了我好几天了。





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2