智能车制作

标题: 【分享】PWM控制 [打印本页]

作者: wanbei    时间: 2011-4-18 19:43
标题: 【分享】PWM控制
#include <hidef.h>            /* common defines and macros */
#include <mc9s12xs128.h>          /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128mal"

void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{                     //锁相环时钟=2*16*(2+1)/(1+1)=19.2MHz
  REFDV=4;            //总线时钟=19.2/2=9.6MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;        //选定锁相环时钟
}
/******************************************************************************************
                   //-----PWM初始化程序------//
******************************************************************************************/
void PWM_duoji_Init(unsigned char ZK)
{
   PWME_PWME2=0;      //关闭0通道   
   PWMPRCLK=0X70;    //对总线时钟进行预分频,总线时钟为9.6M,分频后为 7.5K
   PWMCLK_PCLK2=0; //设B 为其时钟源
   PWMSCLB=0X7d;  
   PWMPOL_PPOL2=1;//上升沿翻转
   PWMCAE_CAE2=0;//左对齐输出
   PWMDTY2=ZK; //占空比为50%的波形
   PWMPER2=249;    //输出为 300Hz的波
   PWMCNT2=0X00;//0 通道计数器清0
   PWME_PWME2=1;//0 通道使能,0通道为输出通道
}



/*void PWM_dianji_Init(unsigned char ZK)
{
   PWME_PWME1=0;      //关闭0通道   
   PWMPRCLK=0X07;    //对总线时钟进行预分频,总线时钟为9.6M,分频后为 7.5K
   PWMCLK_PCLK1=0; //设A 为其时钟源
   PWMSCLA=0X7d;  
   PWMPOL_PPOL1=1;//上升沿翻转
   PWMCAE_CAE1=0;//左对齐输出
   PWMDTY1=ZK; //占空比为50%的波形
   PWMPER1=249;    //输出为 300Hz的波
   PWMCNT1=0X00;//0 通道计数器清0
   PWME_PWME1=1;//0 通道使能,0通道为输出通道
} */                                                                                                                        
void main()   
{   
    PLL_Init();
    PWM_duoji_Init(86);
    //PWM_dianji_Init(125);
    EnableInterrupts;
    for(;;)
  {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
作者: 瞬风    时间: 2011-4-23 12:23
谢谢诶
作者: 瞬风    时间: 2011-4-23 12:23
谢谢诶
作者: 376924623    时间: 2011-4-24 16:04
谢谢啦
作者: hello1043    时间: 2011-4-28 21:43
谢谢哎
作者: csy10841054    时间: 2012-2-24 15:09
谢哎




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