高级会员
- 积分
- 823
- 威望
- 387
- 贡献
- 232
- 兑换币
- 222
- 注册时间
- 2012-11-6
- 在线时间
- 102 小时
|
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define mid_duoji 1500
void pwm_init(void);
void duoji(uint duty);
void sysclock_init(void);
void main(void)
{
sysclock_init();
pwm_init();
while(1)
{
duoji(1500);//打到中间
}
}
void sysclock_init(void)
{
//重新修改
CLKSEL=0x00;
PLLCTL_PLLON=1; //turn on PLL
SYNR =0xc0 | 0x09; //160M
REFDV=0x80 | 0x01;
POSTDIV=0x00; //pllclock=2*16*(1+SYNR)/(1+REFDV)=xxMHz;
while(CRGFLG_LOCK!=1);
CLKSEL_PLLSEL=1;//PLLCLK Enabled,Bus Clock=PLLCLK/2=80
}
void pwm_init(void)
{
PWME=0; // Disable PWM 禁止
PWMCAE=0; //对齐方式,左
PWMCLK=0xff; //选择SA或SB时钟通道
PWMPOL=0xff; //极性,
PWMPRCLK=0;//无预分频
PWMSCLA=40;//时钟SA的频率为1MHz
PWMCTL_CON45= 1;
PWMPER45=20000;//周期20ms
PWMDTY45=mid_duoji;//初始打到中间
PWME_PWME5=1;
}
void duoji(uint duty)
{
PWMDTY45=duty;
}
|
|