LPC1549时钟配置寄存器版

2019-03-25 20:18发布

我用寄存器配置时钟,PLL一直锁定不了,求大虾指点#include "LPC15xx.h"                    // Device header
typedef unsigned int u16;
typedef unsigned char u8;

void SystemInit(void )
{
;
}
void delay(void)
{
        u16 i = 10000;
        while(i--);
}

void SystemCon(void )
{
        u16 j = 0;
        LPC_SYSCON_Type SYSCON;
        SYSCON.SYSOSCCTRL  = 0x00;
        SYSCON.RTCOSCCTRL  = 0x01;
        SYSCON.MAINCLKSELA = 0x03;
        SYSCON.MAINCLKSELB = 0x02;
        SYSCON.SYSPLLCLKSEL = 0x01;
        SYSCON.SYSPLLCTRL |= 0x05;
        SYSCON.SYSAHBCLKDIV = 0x01;
        delay();
        do
        {
                j = ~SYSCON.SYSPLLSTAT;
        }
        while(j);
}

int main(void )
{
        u8 a = 0;
        SystemCon();
        while(1)
        {
                a = a + 1;
                if(a>200)
                {
                        a = 0;
                }
        }


        ;
}

clock.zip (148.65 KB, 下载次数: 4) 2014-9-13 09:37 上传 点击文件名下载附件
小弟还有一事不明
clock.png
上图中的 system oscillator       、、Oscillator 、、、、 XTAL、、、、 external clock source、、、、 crystal oscillator.是什么关系,好乱不知从何理解。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
freebsder
2019-03-26 06:25
补充一个,内部的IRC也可以作为时钟源,资料上说也有12M。用外部晶振的原因是外部晶振精度很高,一般50ppm以下(百万分之50),而单片机自己的IRC精度大概在百分之几。所以在时钟精度没有要求的情况下,可以就用IRC。

一周热门 更多>