system.c

来自「LPC2148平台下实现UART(串口)编程」· C语言 代码 · 共 49 行

C
49
字号
//system.c
#include <iolpc2148.h>
#include "system.h"

#define VIC_TIMER0_bit (1 << VIC_TIMER0)

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


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

//获得外围功能时钟频率
unsigned int GetPclk(void) {
  unsigned int divider;
  switch (VPBDIV & 3) {
      case 0: divider = 4;  break;
      case 1: divider = 1;  break;
      case 2: divider = 2;  break;
    }
  return GetCclk() / divider;
}

//相乘或相除,这里是计算锁相环频率
void FrecInit(void) {
  PLLCFG_bit.MSEL = 0x2;   //M - 相乘
  PLLCFG_bit.PSEL = 0x1;   //P - 相除
  PLLFEED_bit.FEED = 0xAA; //更改设置
  PLLFEED_bit.FEED = 0x55;

  PLLCON_bit.PLLE = 1;     //允许 PLL
  PLLFEED_bit.FEED = 0xAA; //更改设置
  PLLFEED_bit.FEED = 0x55;

  while(PLLSTAT_bit.PLOCK == 0); //等待PLOK稳定

  PLLCON_bit.PLLC = 1;     //连接 PLL
  PLLFEED_bit.FEED = 0xAA; //更改设置
  PLLFEED_bit.FEED = 0x55;
}





⌨️ 快捷键说明

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