📄 lpc_lib_pll.c
字号:
/*
***********************************************************************
Embest Info&Tech Co., Ltd. All rights reserved.
www.embedinfo.com
***********************************************************************
---------------- file information -------------------------------------
file name: lpc_lib_pll.c
version : v0
author : peter pan / panqan@hotmail.com
begin : 2006-02-10
finish : 2006-02-10
define : lpc pll control
notes :
---------------- modify information -----------------------------------
version :
modify :
begin :
finish :
define :
-----------------------------------------------------------------------
*/
// (--------------------- compiler condition --------------------------
/*
#ifdef xxx
#define xxx
#endif
*/
// --------------------- compiler condition --------------------------)
/*-------------------------------------------------------------------*/
/* include files */
/*---------------------------------------------------------------- --*/
#include "lpc_lib_pll.h"
/*-------------------------------------------------------------------*/
/* local function declare */
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/* variable define */
/*-------------------------------------------------------------------*/
/*
INT32U XXXXXX;
*/
/*-------------------------------------------------------------------*/
/* extern function declare */
/*-------------------------------------------------------------------*/
/*--- define in XXX.c ---
extern void XXX();
*/
/*-------------------------------------------------------------------*/
/* extern variable declare */
/*-------------------------------------------------------------------*/
/*--- USED in XXX() ---
XXX SSS; // used inXXX()
*/
/*-------------------------------------------------------------------*/
/* function code */
/*-------------------------------------------------------------------*/
/**********************************************************************
* name : lpc_init_pll_manual()
* func : init the lpc pll with manual para
* para : xxxx
* ret : xxxx
* glob : xxxx
* inc :
* author:
* date :
* modify:
* comment:
**********************************************************************/
void lpc_init_pll_manual()
{
// allow PLL
// while((PLLSTAT & (1 << 10)) == 0); //
PLLCON = 1;
VPBDIV = PLL_VPBDIV;
PLLCFG = PLL_CFG;
// while((PLLSTAT & (1 << 10)) == 0); //
PLLFEED = 0xaa;
PLLFEED = 0x55;
while((PLLSTAT & (1 << 10)) == 0);
PLLCON = 3;
PLLFEED = 0xaa;
PLLFEED = 0x55;
/*
// set MAM 2 CCLK
MAMCR = 0;
MAMTIM = MAM_TIM;
MAMCR = 2;
// init all interrupt
VICIntEnClr = 0xffffffff;
VICVectAddr = 0;
VICIntSelect = 0;
*/
}
/**********************************************************************
* name : lpc_init_pll_auto()
* func : init the lpc pll with auto para
* para : xxxx
* ret : xxxx
* glob : xxxx
* inc :
* author:
* date :
* modify:
* comment:
**********************************************************************/
void lpc_init_pll_auto()
{
// set lpc each clock
PLLCON = 1;
#if ( ((Fcclk/4) / Fpclk) == 1 )
VPBDIV = 0;
#endif
#if ( ((Fcclk/4) / Fpclk) == 2 )
VPBDIV = 2;
#endif
#if ( ((Fcclk/4) / Fpclk) == 4 )
VPBDIV = 0x11;
#endif
#if ( (Fcco/Fcclk) == 1 )
PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if ( (Fcco/Fcclk) == 2 )
PLLCFG = ((Fcclk/Fosc) - 1) | (2 << 5);
#endif
#if ( (Fcco/Fcclk) == 4 )
PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
#if ( (Fcco / Fcclk) == 8 )
PLLCFG = ((Fcclk / Fosc) - 1) | (4 << 5);
#endif
PLLFEED = 0xaa;
PLLFEED = 0x55;
while((PLLSTAT & (1 << 10)) == 0);
PLLCON = 3;
PLLFEED = 0xaa;
PLLFEED = 0x55;
// mem
/*
MAMCR = 2;
#if (Fcclk < 20000000)
MAMTIM = 1;
#else
#if (Fcclk < 40000000)
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
// VIC
VICIntEnClr = 0xffffffff;
VICVectAddr = 0;
VICIntSelect = 0;
*/
// add your code
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -