LPC1114_時鐘系統解析

2021-01-13 電子產品世界

一般我們在main()的開始部分都需要進行時鐘的初始化,根據需要可以選擇時鐘源、是否開啟PLL倍頻、以及PLL配置達到所需要的輸出時鐘,然後再選擇倍頻後的時鐘作為主時鐘源。

如下圖:需要注意幾個時鐘的概念,

本文引用地址:http://www.eepw.com.cn/article/201611/323526.htm



#define CLOCK_SETUP 1#define MAIN_PLL_SETUP 1#define MAIN_CLKSRCSEL_Val 0x00000001#define MAIN_PLL_M_Val 0x00000003#define MAIN_PLL_P_Val 0x00000001#define SYS_AHB_DIV_Val 1 /* 1 through 255, typical is 1 or 2 or 4 */#define XTAL (12000000UL) /* Oscillator frequency */#define OSC_CLK ( XTAL) /* Main oscillator frequency */#define IRC_OSC (12000000UL) /* Internal RC oscillator frequency */#define WDT_OSC ( 250000UL) /* WDT oscillator frequency */uint32_t ClockSource = IRC_OSC;uint32_t SystemFrequency = IRC_OSC; /*!< System Clock Frequency (Core Clock) */uint32_t SystemAHBFrequency = IRC_OSC;void Main_PLL_Setup ( void ){uint32_t regVal;ClockSource = OSC_CLK;LPC_SYSCON->SYSPLLCLKSEL = MAIN_CLKSRCSEL_Val; /* Select system OSC--系統振蕩器 */LPC_SYSCON->SYSPLLCLKUEN = 0x01; /* Update clock source */LPC_SYSCON->SYSPLLCLKUEN = 0x00; /* toggle Update register once */LPC_SYSCON->SYSPLLCLKUEN = 0x01;while ( !(LPC_SYSCON->SYSPLLCLKUEN & 0x01) ); /* Wait until updated */regVal = LPC_SYSCON->SYSPLLCTRL;regVal &= ~0x1FF;LPC_SYSCON->SYSPLLCTRL = (regVal | (MAIN_PLL_P_Val<<5) | MAIN_PLL_M_Val);/* P=1, M=4 FCLKOUT=12*4=48Mhz *//* Enable main system PLL, main system PLL bit 7 in PDRUNCFG. */LPC_SYSCON->PDRUNCFG &= ~(0x1<<7); /* PDRUNCFG第七位寫0,即系統PLL上電 */while ( !(LPC_SYSCON->SYSPLLSTAT & 0x01) ); /* Wait until its locked 確定PLL鎖定以後向下執行 */LPC_SYSCON->MAINCLKSEL = 0x03; /* Select PLL clock output--選擇PLL輸出作為主時鐘 */LPC_SYSCON->MAINCLKUEN = 0x01; /* Update MCLK clock source --允許更新主時鐘*/LPC_SYSCON->MAINCLKUEN = 0x00; /* Toggle update register once */LPC_SYSCON->MAINCLKUEN = 0x01;while ( !(LPC_SYSCON->MAINCLKUEN & 0x01) ); /* Wait until updated 確定主時鐘鎖定以後向下執行 */LPC_SYSCON->SYSAHBCLKDIV = SYS_AHB_DIV_Val; /* SYS AHB clock, typical is 1 or 2 or 4 --SYSAHBCLKDIV的值為1,即不分頻 使AHB時鐘設置為48Mhz */#if MAIN_PLL_SETUPSystemFrequency = ClockSource * (MAIN_PLL_M_Val+1);#elseSystemFrequency = ClockSource;#endifSystemAHBFrequency = (uint32_t)(SystemFrequency/SYS_AHB_DIV_Val);return;}/*** Initialize the system** @param none* @return none** @brief Setup the microcontroller system.* Initialize the System and update the SystemFrequency variable.*/void SystemInit (void){uint32_t i;#ifdef __DEBUG_RAM LPC_SYSCON->SYSMEMREMAP = 0x1; /* remap to internal RAM */#else#ifdef __DEBUG_FLASH LPC_SYSCON->SYSMEMREMAP = 0x2; /* remap to internal flash */#endif#endif#if (CLOCK_SETUP) /* Clock Setup *//* bit 0 default is crystal bypass,bit1 0=0~20Mhz crystal input, 1=15~50Mhz crystal input. */LPC_SYSCON->SYSOSCCTRL = 0x00;/* main system OSC run is cleared, bit 5 in PDRUNCFG register */LPC_SYSCON->PDRUNCFG &= ~(0x1<<5); /* PDRUNCFG的第五位寫0,即系統系統振蕩器上電 *//* Wait 200us for OSC to be stablized, no statusindication, dummy wait. */for ( i = 0; i < 0x100; i++ );#if (MAIN_PLL_SETUP)Main_PLL_Setup(); #endif#endif /* endif CLOCK_SETUP *//* System clock to the IOCON needs to be enabled ormost of the I/O related peripherals wont work. */LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); //使能IO模塊的時鐘return;}


相關焦點

  • LPC1114時鐘配置
    由對主時鐘源選擇寄存器(MAINCLKSEL)的操作來進行選擇,同一時刻只能選擇一種時鐘做為主時鐘。下面就給出MAINCLKSEL寄存器的位結構(要注意,因為LPC1114是32位的,所以所有的寄存器都是32位的),如下表所示。
  • LPC1114系統定時器(SysTick)
    在LPC1114內部有一個特殊的定時器——系統定時器(SysTick),它位於Cortex-M0內核裡面,是ARM內核的一部分,主要用來給作業系統提供時間片輪轉的定時,一般固定為10ms的定時,所以中文也稱它為「嘀噠」定時器。
  • LPC1114外部中斷
    外部中斷作為處理器響應外部事件的通道,在控制系統中起著非常重要的作用。下面就來討論一下LPC1114外部中斷的使用情況。LPC1114的每一個引腳都可以響應一個外部中斷,所以有多少個引腳就有多少個外部中斷。但LPC1114的中斷系統非常強大,外部中斷只是它其中的一小部分。
  • NXP_LPC1114_LED燈程序
    Delay_Sec(u8 Time){u16 i;while(Time){for(i=0;i<3000000;i++);Time--;}}void Delay_Ms(u16 Time){u16 i;while(Time){for(i=0;i<3000;i++);Time--;}}int main(void){SystemInit(); //系統初始化
  • LPC1114的簡易數碼相框設計
    摘要:以NXP公司基於ARM Cortex—M0的LPC1100系列MCU LPC1114為控制核心,配合SD存儲卡、外圍電路和TFT液晶顯示屏,提出了一種簡易數碼相框的設計方案。
  • 基於LPC1114的學習型紅外遙控器
    本設計就是採用LPC1114+OLED+紅外接收頭構成一個學習型紅外遙控器,  安裝LPCxpress,後插入LPC-Link 自動識別,  系統多出一個     然後打開11XX的例程,正常安裝路徑在C:\nxp \lpcxpresso_3.1\Examples\LPC1000\LPC11xx下  文件名字 LPCXpresso1114_v1.00.zip
  • 基於LPC1114的智能節能LED檯燈控制器設計
    LED檯燈使用距離和亮度進行對比,從而調節LPC1114的PWM輸出佔空比,驅動LED檯燈驅動器,在保證LED檯燈使用視野亮度恆定的情況下,實現人走燈滅和根據環境光線強度智能調節LED檯燈亮度兩大功能,實現智能節能效果。
  • LPC1114/LPC11U14和LPC1343對比學習(八)USB
    LPC1114沒有USB功能,所以這裡只能針對LPC1343和LPC11U14進行說明。對於這兩種有USB功能的晶片其還是區 別,LPC1343內部集成了USB驅動,而LPC11U14沒有此功能,所以LPC1343USB開發比較簡單一點,價格也要貴一點。
  • NXP_LPC1114延時函數集合
    #include "LPC11XX.h"#include "gpio.h"#include "timer16.h"/*系統時鐘配置為48MHz,AHB不分頻,一次定時器時鐘為48Mhz,因此得出以下分頻值,匹配值*/void Delay_Us(unsigned int DelayTimes){/* *
  • LPC1114外中斷應用
    LPC1114微處理器每一個GPIO都可以中斷,不過在設計中斷時需要注意,下面就舉例說明:/*************************************************************************************** global variable*******************
  • LPC1114如何使用MDK與JLINK連接使用問題
    在前不久我應用LPC1114做了個MP3開發板,在使用JLINK工具下的SWD方式下載非常完美。但在在最近在用LPC1114做另外一個項目時,發現,用JLINK工具的SWD方向調試,總是會提示如下(mdk4.13),很多網友也遇到了這個問題:
  • LPC1114通用輸入/輸出埠(GPIO)續
    雖然DIR寄存器也是32位結構,但由於LPC1114每組只有12個引腳,所以只用了其中的低12位。當位為0 時做輸入,為1時做輸出,12位與12個引腳一一對應,每位設置對應一個引腳。在默認狀態下DIR的值為全0,所以在默認狀態下所有的引腳為輸入狀態。要改變引腳狀態,可通過寫DIR寄存器對應的位來實現。
  • 《成語小秀才》第1114關答案是什麼 第1114關答案介紹
    導 讀 【九遊攻略】成語小秀才第1114關答案是什麼?很多小夥伴都不知道,下面九遊網小編就為大家帶來成語小秀才第1114關答案介紹,一起和小編來看看吧!
  • GPS時鐘系統(GPS同步時鐘)技術方案
    在電力系統、CDMA2000、DVB、DMB等系統中,高精度的GPS時鐘系統(GPS同步時鐘)對維持系統正常運轉有至關重要的意義。
  • msp430系統時鐘詳解
    在這三個時鐘源的獨立工作或是在三個時鐘源相互協調配合(是可以通過軟體配置的)下為2553系統提供了系統時鐘ACLK、MCLK和SMCLK。   上電後,系統默認使用的主系統時鐘MCLK和子系統時鐘SMCLK是同為DCOCLK產生的1MHz時鐘,而輔助時鐘ACLK則為內部VLOCLK產生的12KHz時鐘。
  • LPC1114_Timer16_0中斷程序_MDK編譯環境
    關於Timer16_0代碼: LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7); //開啟定時器時鐘 LPC_TMR16B0->PR=1000;//1000-1;
  • 北京天良數字網絡時鐘系統
    1、系統概述:天良全數字子母鍾系統主要為醫院提供準確、標準的時間,系統採用GPS與北鬥衛星導航定位系統中的時標信號作為標準時間源對母鐘的時鐘信號源進行校準,向醫療場所的時鐘及區域網內的計算機提供準確的時鐘信號
  • LPC1114/LPC11U14和LPC1343對比學習(三)SysTick
    從Cortex開始ARM公司在內核中添加SysTick,為系統運行提供了便捷。通過學習這三種處理器的結構和寄存器可知,這三種SysTick的結構和寄存器都是一樣的完全兼容,SysTick的結構如下:
  • iOS14被發現時鐘出現Bug,時鐘時間與系統時間不同,網友熱議:昨天弄...
    虎撲9月18日訊 近日,有網友曝出iOS14時鐘Bug:時鐘時間與系統時間不同。新聞發布後引起了網友的熱議,具體內容如下:詳細視頻戳我【#iOS14時鐘Bug#,時鐘時間與系統時間不同】近日,iOS14被發現時鐘出現Bug,時鐘插件顯示時間比系統時間慢了整整三個小時。
  • 數量關係:時鐘問題
    為了幫助大家高效複習,今天在這裡介紹一種特殊行程問題——時鐘問題。一、題型時鐘問題主要研究在鐘錶上時針和分針的角度關係,例如「12點9分時,時針分針的夾角是多少度?」,像這樣研究鐘面上兩種指針關係的問題就是時鐘問題。