www.pudn.com > DSP28_SysCtrl.rar > DSP28_SysCtrl.c


/************************************************************************************* 
** 文件名:DSP28_SysCtrl.c 
 
** Copyright (c) 2006-2006 CHEM 
 
** 创建人:辛书辉 
 
** 日  期:2006-10-01 
 
** 修改人:辛书辉 
 
** 日  期:2006-10-01 
 
** 版  本:DSP2812.1 
 
** 用  途: DSP28 Device System Control. 
 
** 范  围: Initialization & Support Functions. 
 
*************************************************************************************/ 
 
#include "DSP28_Device.h" 
 
//--------------------------------------------------------------------------- 
// InitSysCtrl:  
//--------------------------------------------------------------------------- 
// This function initializes the System Control registers to a known state. 
// 
void InitSysCtrl(void) 
{ 
   Uint16 i; 
   EALLOW; 
    
// On TMX samples, to get the best performance of on chip RAM blocks M0/M1/L0/L1/H0 internal 
// control registers bit have to be enabled. The bits are in Device emulation registers. 
   DevEmuRegs.M0RAMDFT = 0x0300; 
   DevEmuRegs.M1RAMDFT = 0x0300; 
   DevEmuRegs.L0RAMDFT = 0x0300; 
   DevEmuRegs.L1RAMDFT = 0x0300; 
   DevEmuRegs.H0RAMDFT = 0x0300; 
    
            
// Disable watchdog module 
   SysCtrlRegs.WDCR= 0x0068; 
// Enable watchdog module 
//   SysCtrlRegs.WDCR= 0x002F;    
 
// Initalize PLL 
   SysCtrlRegs.PLLCR = 0x000A; 
   //SysCtrlRegs.PLLCR = 0x00; 
   //SysCtrlRegs.PLLCR = 0x10;    
   // Wait for PLL to lock 
   for(i= 0; i< 5000; i++){} 
        
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values 
   SysCtrlRegs.HISPCP.all = 0x0001; 
   SysCtrlRegs.LOSPCP.all = 0x0002;	 
// Peripheral clock enables set for the selected peripherals.    
   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; 
   SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; 
   SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1; 
   SysCtrlRegs.PCLKCR.bit.SCIENCLKB=1; 
    
   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;//使能ADC外设内部的高速时钟 
				 
   EDIS; 
	 
} 
 
//--------------------------------------------------------------------------- 
// KickDog:  
//--------------------------------------------------------------------------- 
// This function resets the watchdog timer. 
// Enable this function for using KickDog in the application  
 
void KickDog(void) 
{ 
    EALLOW; 
    SysCtrlRegs.WDKEY = 0x0055; 
    SysCtrlRegs.WDKEY = 0x00AA; 
    EDIS; 
} 
 
	 
//=========================================================================== 
// No more. 
//===========================================================================