久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

LPC1114_時鐘系統解析

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年11月12日   【字體:

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

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



 

#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 it's 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_SETUP
  SystemFrequency = ClockSource * (MAIN_PLL_M_Val+1);
#else
  SystemFrequency = ClockSource;
#endif
  SystemAHBFrequency = (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 status
  indication, 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 or
  most of the I/O related peripherals won't work. */
  LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16);                  //使能IO模塊的時鐘
  return;
}
關閉窗口

相關文章

主站蜘蛛池模板: 中文字幕一区二区三区不卡在线 | 欧美一级在线观看 | 国产精品免费一区二区三区四区 | 91视频国产精品 | 欧美美女爱爱视频 | 成年人视频在线免费观看 | 国产精品毛片一区二区在线看 | 国产黄色小视频在线观看 | 2021狠狠干 | 久久精品色欧美aⅴ一区二区 | 成人3d动漫一区二区三区91 | 欧美 日本 国产 | 日韩中文字幕免费在线 | 天天插天天搞 | 日韩成人一区 | 黄一区二区三区 | 日本久久一区二区三区 | 久久婷婷麻豆国产91天堂 | 成人欧美一区二区三区在线播放 | 中文字幕一区二区三区不卡在线 | caoporn国产精品免费公开 | 国产欧美日韩一区二区三区在线 | 成人免费视频网站在线观看 | 成人久久一区 | 亚洲一区二区三区四区av | 美女拍拍拍网站 | 黄色一级大片在线免费看产 | 中文亚洲视频 | 精品欧美一区二区三区久久久 | 91精品国产乱码久久久久久久久 | 国内毛片毛片毛片毛片 | 在线国产一区二区三区 | 一级毛片免费完整视频 | 欧美黄在线观看 | 国产精品99久 | 国产精品一区2区 | av色站| 日韩精品一区二区三区四区视频 | 久久99网站| 国产美女视频黄a视频免费 国产精品福利视频 | 日本激情一区二区 |