中级会员
- 积分
- 334
- 威望
- 270
- 贡献
- 52
- 兑换币
- 0
- 注册时间
- 2010-1-16
- 在线时间
- 6 小时
|
1贡献
我用示波器检测出来我的PWM波的周期是60ms,为什么呀?PWM波的周期如何计算呢?望给出事例......
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
REFDV=1; //总线时钟=48/2=24MHz
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x80; //选定锁相环时钟
}
void PWM(void)
{
PWME=0;
PWMPRCLK=3; //24M总线时钟8分频,得3M
PWMSCLA=150; //SA=A/2/150=10K
PWMCLK_PCLK0=1; //选SA
PWMPOL_PPOL0=1;
PWMCAE_CAE0=0;
PWMPER0=200; //10k/200=50Hz=20ms
PWMDTY0=100;
PWME=1;
} |
最佳答案
查看完整内容
#include
#include
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
void PWM_int(void)
{
PWME = 0x00; //关闭PWM各通道输出
PWMCTL = 0xF0; //01.23.45.67分别级联
//01 23舵机
//45 67电机
// PWMCLK = 0x00; //时钟选择寄存器
PWMCLK_PCLK1 = 1;
PWMCLK_PCLK3 = 1;
PWMCLK_PCLK5 = 0;
...
|