金牌会员
- 积分
- 1175
- 威望
- 596
- 贡献
- 363
- 兑换币
- 353
- 注册时间
- 2013-7-16
- 在线时间
- 108 小时
|
先上程序吧
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
/*************主频设置**************************/
void Busclock(void) //05,01 48MHz 06,01 56MHz 07,01 64MHz 08,01 72MHz
{
CLKSEL=0X00; //disengage PLL to system
PLLCTL_PLLON=1; //turn on PLL
SYNR =0xc0 | 0x05;
REFDV=0x80 | 0x01;
POSTDIV=0x00; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=96MHz;
_asm(nop); //BUS CLOCK=48M
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1;
}
void init_pwm(void)
{
PWME_PWME0=0; //禁止
PWMPRCLK=0X07; //对总线时钟进行预分频(128分),总线时钟为48M,分频后为375khz
PWMCLK_PCLK0=0; //设A为其时钟源
PWMSCLA=0X7D; //A时钟为1000Hz 7D=125 375/125
PWMPOL_PPOL0=1; //上升沿翻转
PWMCAE_CAE0=0; //左对齐输出
PWMDTY0=0X05; //占空比为25%的波形
PWMPER0=0X14; //输出为50Hz的波
PWMCNT0=0X00; //0通道计数器清0
PWME_PWME0=1; //0通道使能,0通道为输出通道
}
void main(void)
{
Busclock();
init_pwm();
while(1);
我自己计算的是pwm0输出50hz方波,但实际输出的不是,求教大神哪里问题
|
|