pll.c

来自「周立功代码移植,在AVR上,应用IARAVR编译通过」· C语言 代码 · 共 37 行

C
37
字号
#include <iolpc2148.h>

// 根据电路板上晶振设置振荡器频率
#define OSCILLATOR_CLOCK_FREQUENCY  12000000      //in MHz


unsigned int GetCclk(void) { // 获得实际处理器时钟频率
  return OSCILLATOR_CLOCK_FREQUENCY * (PLLCON & 1 ? (PLLCFG & 0xF) + 1 : 1);
}


//这个设置系统时钟是60MHz
void PLLInit(void)
{
PLLCFG_bit.MSEL=0x4;  //设定倍频
PLLCFG_bit.PSEL=0x1;   //设定分频
PLLFEED_bit.FEED=0xAA; //PLL馈送
PLLFEED_bit.FEED=0x55;

PLLCON_bit.PLLE=1;   //使能PLL
PLLFEED_bit.FEED=0xAA;
PLLFEED_bit.FEED=0x55;

while(PLLSTAT_bit.PLOCK==0); //PLL等待PLL锁定 必要时可除去

PLLCON_bit.PLLC=1; //PLL连接到系统
PLLFEED_bit.FEED=0xAA;
PLLFEED_bit.FEED=0x55;
}

/********************************************************/
//系统12MHZ,MSEL=0x0   PSEL=0x3
//系统24MHz,MSEL=0x1   PSEL=0x2
//系统48MHz,MSEL=0x3   PSEL=0x1
//系统60MHZ,MSEL=0x4   PSEL=0x1 或0x00
/*******************************************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?