⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc_lib_pll.c

📁 使用embest IDE开发工具开发的基于LPC2294 的触摸屏开发
💻 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 + -