中级会员
- 积分
- 416
- 威望
- 218
- 贡献
- 84
- 兑换币
- 125
- 注册时间
- 2013-3-8
- 在线时间
- 57 小时
- 毕业学校
- 铜陵学院
|
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
void PLL_Init(void)
{
CLKSEL=0x00; //24mhz
SYNR=0XC0 | 0X05;
REFDV=0XC0 | 0X03;
PLLCTL_PLLON=1;
POSTDIV=0X00;
asm(nop);
asm(nop);
while(0==CRGFLG_LOCK); //锁相环锁定
CLKSEL_PLLSEL=1; //选定PLL时钟
}
void pwm_init()
{
PWMCTL_CON45=1;//01口级联
PWMCAE=0x00;//输出波形为左对齐方式
PWMCNT45=0;//通道寄存器清0
PWMPOL=0xe0;//极性选择为先输出高电平
PWMPRCLK=0x00;//定义预分频寄存器 不分频
PWMSCLA=0x06;//设定SA的频率为2M
PWMSCLB=0x06;//设定SB的频率为4M
PWMCLK=0xe0;//选择SA作为时钟源
PWMPER45=40000;//设定周期为50HZ
PWMDTY45=3200;//占空比为1.5/20
PWME_PWME5=1; //使能输出
}
void delays(int z){
int i,j;
for(i=0;i<5000;i++)
for(j=0;j<z;j++);}
void duoji(){
PWMDTY45=2300;
delays(5000);
PWMDTY45=3200;
delays(5000);
PWMDTY45=4100;
delays(5000);
PWMDTY45=3200;
delays(5000);
}
void main(void) {
/* put your own code here */
// busclock80_init() ;
PLL_Init();
pwm_init();
EnableInterrupts;
for(;;) {
_FEED_COP(); /* feeds the dog */
duoji();
} /* loop forever */
/* please make sure that you never leave main */
}
|
|