在PLL初始化函数里有这么一段:
// If switching to 1/2
if((divsel == 1)||(divsel == 2))
{
EALLOW;
SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;
EDIS;
}
// If switching to 1/1
// * First go to 1/2 and let the power settle
// The time required will depend on the system, this is only an example
// * Then switch to 1/1
if(divsel == 3)
{
EALLOW;
SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
DELAY_US(50L);
SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;
EDIS;
}
可是在PLL设置表30里的描述却是:DIVSEL=0或1,DIVSEL=2,DIVSEL=3,怎么回事呀?
另外上面函数中 SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;然后又SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;我糊涂了,求教指导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
表里的描述是对的 DIVSEL=0或1都表示不分频
代码也是对的吧 DIVSEL最小肯定是1 即使等于2 也是从1升到2 或从3降到2
变化1
如果DIVSEL=3 如果从1直接升到3 频率跳变就到 带来了电源等的不稳定
然后先升到2 再升到3
我觉得影响不大吧 你可以试试 直接幅值
但是延时是有必要的 稳定时钟
一周热门 更多>