CLKSEL = 0; /* Select clock source from XTAL and set bits in CLKSEL reg. */
PLLCTL &= 0x40; /* Disable the PLL */
SYNR = 7; /* Set the multiplier register */
REFDV = 3; /* Set the divider register */
PLLCTL = 0x70;
while(!CRGFLG_LOCK) {};
CLKSEL = 0x80; /* Select clock source from PLL */
程序就死在 while(!CRGFLG_LOCK) {};那了,这个是等待时钟同步锁定的.
程序很短没有问题,可能是硬件的原因,可是晶振和PLL都换过。有一块板子可以PLL,有两块板子都不行,用表笔打过,接线也没问题。
想请教一下:
1、哪位以前遇到过这种问题,要怎么解决,或者外围电路怎么改进.
2、CRGFLG_LOCK=1时,时钟同步误差很小,CRGFLG_LOCK=0时,很大.若不等到CRGFLG_LOCK=1,程序有多大影响呢?
非常感谢!
你的外部晶振接的是多少?如果不等到CRGFLG_LOCK=1,有可能PLL没有起作用的,还有你的PLL的总路线时钟是多少?
PLLCTL &= 0x40; /* Disable the PLL */这句并没有把PLLON清零,换成这句试试看:PLLCTL_PLLON = 0; ///* Disable the PLL */
多谢楼上两位!
还是不行啊,外部晶振16M,PLL的总路线时钟64M,需要总线倍到32M
小康,超到16M都不行......
改过了,不行....
什么原因呢?
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |