要多高频率啊?这个具体函数我已经在自己设计的开发板上多次使用,直接调用或者略加修改即可:
void SetBusCLK_40M(void)
{
CLKSEL=0X00; //disengage PLL to system
PLLCTL_PLLON=1; //turn on PLL
SYNR=9;
REFDV=3; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
_asm(nop); //BUS CLOCK=40M
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
请等待PLL时钟稳定后,再切换。
好久没玩xd了,今天调试遇到了同样问题,程序死在
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
过不去了,晕!真的是外部时钟电路有问题吗?怎么同样PCB另外一块一直正常。明天再仔细查查!
Everything is possiable!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |