这节,我们介绍LPC1114的PLL的设定,还是通过程序演示,不当之处欢迎指正,继续抛砖引玉。
如下便是PLL设定的子程序,相信大家对照注释都看的懂。
void PLLset()
{
unsigned long i=0;
LPC_SYSCON->;PDRUNCFG &= ~( 1 << 5 );//系统振荡器上电
for( ; i<256; i++ );//等待振荡器稳定
LPC_SYSCON->SYSPLLCLKSEL |= ( 1 << 0 );//选择系统振荡器OSC
LPC_SYSCON->SYSPLLCLKUEN &= ~( 1 << 0 );//切换时钟源
LPC_SYSCON->SYSPLLCLKUEN |= ( 1 << 0 );//更新时钟源
while( !(LPC_SYSCON->SYSPLLCLKUEN & 0x01) );//等待时钟源更新完成
LPC_SYSCON->SYSPLLCTRL &= 0x23;//[6:5]=01;[4:0]00011;M=4 P=2
LPC_SYSCON->;PDRUNCFG &= ~( 1 << 7 );//系统PLL上电
while( !(LPC_SYSCON->SYSPLLSTAT & 0x01) );//等待锁定
LPC_SYSCON->MAINCLKSEL &= ( 11 << 0 );//选择为系统PLL输出
LPC_SYSCON->MAINCLKUEN |= ( 1 << 0 );//更新MCLK时钟源选择
LPC_SYSCON->MAINCLKUEN &= ~( 1 << 0 );//翻转更新寄存器
LPC_SYSCON->MAINCLKUEN |= ( 1 << 0 );
while( !(LPC_SYSCON->MAINCLKUEN & 0x01) );//等待更新完成
}
;P 菜鸟之作...