lpc1768的系统时钟

#define XTAL_FREQ   12000000

#define VECT_TAB_OFFSET  0x0000

void SystemInit(void)

{

//PLL0时钟配置

LPC_SC->SCS       = 0X00000020;               /*使能外部主晶振,频率范围1-20M*/

if (LPC_SC->SCS & (1 << 5))                 /* 主时钟被使能  */

{

while ((LPC_SC->SCS & (1<<6)) == 0);/*   等待主晶振使能并稳定  */

}

LPC_SC->CCLKCFG   = 0x00000003;      /* 选择PLL到CCLK的分频     4  */

LPC_SC->PCLKSEL0  = 0x00000000;    /*选择外设时钟从CCLK的分屏 均为0,均为4分频率,后期可改 */

LPC_SC->PCLKSEL1  = 0x00000000;

LPC_SC->CLKSRCSEL = 0x00000001;    /* 选择CCLK时钟源  主震荡器作为PLL0时钟源      */

LPC_SC->PLL0CFG   = 0x00050063;    /* 选择PLL倍频     N 6 M 100 pllout 400M   */

LPC_SC->PLL0FEED  = 0xAA;

LPC_SC->PLL0FEED  = 0x55;

LPC_SC->PLL0CON   = 0x01;             /* 使能PLL0                */

LPC_SC->PLL0FEED  = 0xAA;

LPC_SC->PLL0FEED  = 0x55;

while (!(LPC_SC->PLL0STAT & (1<<26)));/* 等待PLL0锁定  */

LPC_SC->PLL0CON   = 0x03;             /* 使能PLL0连接并使能           */

LPC_SC->PLL0FEED  = 0xAA;

LPC_SC->PLL0FEED  = 0x55;

while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24))));/* 等待连接并使能成功 */

//PLL1时钟配置

LPC_SC->PLL1CFG   = 0x00000023;      /*设置PLL1分频 M 3 P 2  */

LPC_SC->PLL1FEED  = 0xAA;

LPC_SC->PLL1FEED  = 0x55;

LPC_SC->PLL1CON   = 0x01;             /* PLL1 Enable                        */

LPC_SC->PLL1FEED  = 0xAA;

LPC_SC->PLL1FEED  = 0x55;

while (!(LPC_SC->PLL1STAT & (1<<10)));/* 等待PLL时钟锁定                   */

LPC_SC->PLL1CON   = 0x03;             /* 使能并连接              */

LPC_SC->PLL1FEED  = 0xAA;

LPC_SC->PLL1FEED  = 0x55;

while (!(LPC_SC->PLL1STAT & ((1<< 9) | (1<< 8))));/* 等待连接并使能成功 */

LPC_SC->PCONP     = 0x00000008;        /* 初始化仅仅打开UART0时钟  */

LPC_SC->CLKOUTCFG = 0x00000000;         /* 不使用CLOCK输出         */

LPC_SC->FLASHCFG  = 0x0000403A;         //设置flash访问时间

#if (__RAM_MODE__==1)        //根据配置

SCB->VTOR  = 0x10000000 | VECT_TAB_OFFSET;

#else

SCB->VTOR  = 0x00000000 | VECT_TAB_OFFSET;     //中断向量表在flash区间,偏移为0

#endif

}

时间: 2024-11-10 11:18:32

lpc1768的系统时钟的相关文章

认识STM32的系统时钟

STM32共有五个时钟源,分别是: HSI是高速内部时钟.RC振荡器,频率为8MHz: HSE是高速外部时钟,频率范围为4~6MHz; (可接石英/陶瓷谐振器或者接外部时钟源) LSI是低速内部时钟,频率40kHz; (独立看门狗时钟源.可作RTC时钟源) LSE是低速外部时钟,频率为32.768kHz石英晶体; (主要RTC时钟源) PLL是锁相环倍频输出,频率可选择为HSI/2.HSE或者HSE/2.倍频可选择2~16倍,但其输出频率最大不超过72MHz: 此处重点介绍系统时钟,一般其他所有

STM32系统时钟

一.时钟树 STM32有4个时钟源: 1)HSE(高速外部时钟源) 外部晶振作为时钟源,范围为4~16MHz,常取为8MHz 2)HSI(高速内部时钟源) 由内部RC振荡器产生,频率为8MHz,但不稳定 3)LSE(低速外部时钟)   以外部晶振作为时钟源,主要供给实时时钟模块,一般用32.768KHz. 4)LSI(低速内部时钟)         由内部RC振荡器产生,也是提供给实时时钟模块,频率约为40KHz. 二.系统启动过程中时钟设置 以使用STM32库函数SystemInit为例进行说

7th.关于系统时钟的设置

言简意赅版本: 开启MPLL 设置LOCKTIME寄存器 (设置锁定时间) 设置MPLLCON寄存器(设置主频与FCLK的关系) 设置CLKDIVN寄存器(设置FCLK,HCLK,UCLK的倍数关系) MPLLCON参照官方提供参数配置即可. 详细情况 开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,当MPLLCON存入初值,并开始生效后,S3C2440A可以正常工作在400MHz下.开发板的主板上的外设和CPU也有一个频率限度,ARM920T内核的S3C2440的最高

Linux 系统时钟

介绍 计算机中的很多程序都依靠精确的时间来正常工作, 比如一个脚本如何在指定的时间执行. 计算机有两个时钟,一个是始终运行的.由电池(CMOS)供电的硬件时钟,另一个是由运行在您的计算机上的操作系统维护的系统时钟(又称软件时钟).启动时,内核会把硬件时钟同步至系统时钟,之后两个时钟各自独立运行. 硬件时钟通常只在操作系统启动时用来设置系统时钟,系统时钟设置好后由系统时钟来记录时间.在Linux系统中,您可以选择用UTC/GMT 时间或本地时间来记录硬件时钟.推荐的选项是用UTC记录,因为可以自动

【单片机】【710】振荡器和系统时钟

710提供7个系统时钟选择 FRC振荡器(快速RC,内部标称值为7.37MHz) 带PLL的FRC振荡器 主(XT.HS.EC)振荡器 带PLL的主振荡器 辅助(LP)振荡器 LPRC振荡器 带后分频器的FRC振荡器 关于晶振频率啊,指令周期啥的请参照以前的随笔1937之定时器的那篇 而710的主振荡器能选以下三种作为其时钟源 XT(晶振):3-10MHz,就是单片机上的那个,一般上面的是8MHz HS(高速晶振):10-40MHz,估计自己用的那个上面没有,和上面的XT在一个位置 EC(外部时

STM32F4xx那点事(二)——系统时钟的配置

每次接触一款新的单片机,我都会很好奇该单片机的系统时钟是多少MHz,怎样才能达到Datasheet中描述的最大系统时钟,该单片机的外设的时钟会是多少MHz呢?如果要使用延时,我怎么编写程序才能实现精准的延时呢?我认为这些问题是我开始接触新单片机之前需要了解的. 对于每款ARM Cortex-M系列单片机而言,厂商为了更好的推广自己的单片机,同时方便设计人员使用,降低产品开发周期,都会将该单片机的外设相关寄存器以及外设的相关函数都实现并打包,放在官方网站上免费供大家使用.STM32F405RG的标

linux之路的第一篇之常用系统命令之系统时钟设置详解

系统时钟通常是非常有用的,所以一定要熟记date 用来显示和修改当前系统日期时间,主要用于时间管理,这是系统时间软件时钟date 月日时分年.秒  MMDDhhmm[cc|yy].ss date 121212122013.34 2013年12月12日12分34秒 年和秒可以不指定,默认是当前年和00秒date +%D 显示日期 月日年     +%Y/%y 都可以 只显示年小y显示两位年份     +%T 小时分钟秒     +%F 年月日     +%H 小时     +%M 分钟     +

【转】OAL之系统时钟

1. 系统时钟与内核的关系 WinCE 5.0采用基于时间片的抢占式多任务的实时内核,而且每个线程可以根据需要自行设定线程时间片的大小(参考CeSetThreadQuantum函数),默认为100ms,这个默认值dwDefaultThreadQuantum也可以在OEMInit()时自行设定.在内核源文件中,与单词Quantum有关的变量名一般是指时间片,WinCE内核定义了几个与时钟有关的全局变量,他们也是内核与OAL接口的一部分: 1) dwReschedTime,这个变量在内核的调度程序中

stm32之Systick(系统时钟)

Systick的两大作用: 1.可以产生精确延时: 2.可以提供给操作系统一个单独的心跳(时钟)节拍: 通常实现Delay(N)函数的方法为: for(i=0;i<x;i++) ; 对于STM32系统微处理器来说,执行一条指令只有几十ns(纳秒),进入for循环,要实现N毫秒的x值非常大:而由于系统频率的宽广,很难计算出延时N毫秒的精确值:针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N): cortex的内核中包含一个SysTick时钟,SysTi