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

📄 dsp281x_sysctrl.c

📁 基于双向DC-DC变换器
💻 C
字号:
#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

#pragma CODE_SECTION(InitFlash, "ramfuncs");
void InitSysCtrl(void)
{
   DisableDog();
   InitPll(0x06);      //clkin=90MHz
   InitPeripheralClocks();
}
void InitFlash(void)
{
   EALLOW;
   FlashRegs.FOPT.bit.ENPIPE = 1;
   FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;
   FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;
   FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;       
   FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;   
   EDIS;
   asm(" RPT #7 || NOP");
}	
void KickDog(void)
{
    EALLOW;
    SysCtrlRegs.WDKEY = 0x0055;
    SysCtrlRegs.WDKEY = 0x00AA;
    EDIS;
}
void DisableDog(void)
{
    EALLOW;
    SysCtrlRegs.WDCR= 0x0068;//第6位 WDDIS=1 屏蔽看门狗
    EDIS;
}
void InitPll(Uint16 val)//val=ox06
{
   volatile Uint16 iVol;   
   if (SysCtrlRegs.PLLCR.bit.DIV != val)
   {
      EALLOW;
      SysCtrlRegs.PLLCR.bit.DIV = val;//CLKIN=OSCCLK*6/2=90M
      EDIS;
      DisableDog();
      for(iVol= 0; iVol< ( (131072/2)/12 ); iVol++)//等待锁相环锁定
      {
       ;
      }
   }
}
void InitPeripheralClocks(void)
{
   EALLOW;
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values
   SysCtrlRegs.HISPCP.all = 0x0003;   //HISPCP=SYSCLK/2*3=15M/25M
   SysCtrlRegs.LOSPCP.all = 0x0005;   //LOSPCP=SYSCLK/2*5=9M/15M
// Peripheral clock enables set for the selected peripherals.   
   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;//使能EVA
   SysCtrlRegs.PCLKCR.bit.EVBENCLK=0;//不使能EVB
   
   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;//使能ADC
   
   SysCtrlRegs.PCLKCR.bit.SPIENCLK=0;//不使能SPI
   
   SysCtrlRegs.PCLKCR.bit.SCIAENCLK=0;//不使能SCI-A
   SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0;//不使能SCI-B
   SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0;//不使能MCBSP
   
   SysCtrlRegs.PCLKCR.bit.ECANENCLK=0;//不使能ECAN

   EDIS;
}

⌨️ 快捷键说明

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