?? pll.c
字號:
/*
*********************************************************************************************************
* 文件: PLL.C
* 描述: 初始化 PLL.VPB.MAM 等功能部件,根據目標板的要求更改相應頻率設置在 PLL.H 中.
* 編寫: 深思 (001-12345@sohu.com).
*********************************************************************************************************
*/
#include "includes.h"
/*
********************************************************************************************************
* 函數: void PLLInit(void).
* 描述: 設置 PLL. VPB. MAM. 等功能器件.
********************************************************************************************************
*/
void PLLInit(void)
{
PLLCON = 1; /* PLL 使能. */
#if ((Fcclk / 4) / Fpclk) == 1
VPBDIV = 0;
#endif
#if ((Fcclk / 4) / Fpclk) == 2
VPBDIV = 2;
#endif
#if ((Fcclk / 4) / Fpclk) == 4
VPBDIV = 1;
#endif
#if (Fcco / Fcclk) == 2
PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
PLLFEED = 0xaa;
PLLFEED = 0x55; /* 饋送序列. */
while((PLLSTAT & (1 << 10)) == 0); /* 等待 PLL 鎖定. */
PLLCON = 3;
PLLFEED = 0xaa;
PLLFEED = 0x55;
MAMCR = 2; /* 設置存儲器加速模塊 */
#if Fcclk < 20000000
MAMTIM = 1;
#else
#if Fcclk < 40000000
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
VICIntEnClr = 0x0ffffffff; /* 初始化VIC. */
VICSoftIntClear = 0x0ffffffff;
VICVectAddr = 0;
}
/*
*********************************************************************************************************
* END.
*********************************************************************************************************
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -