加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

voidInitSysCtrl(void)讲解

(2018-03-21 12:26:43)
标签:

dsp

分类: 毕设(DSP/ARM/FPGA)
#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File 

DSP的InitSysCtrl()函数
void InitSysCtrl(void)
{      
   DisableDog();//关闭看门狗
   InitPll(0xA);//初始化PLL时钟
   InitPeripheralClocks();//初始化外设时钟
}
void InitPll(Uint16 val)//初始化PLL时钟
{
   volatile Uint16 iVol;   
   
   if (SysCtrlRegs.PLLCR.bit.DIV != val)
   {
      EALLOW;

     //设置系统时钟为150Mhz
      SysCtrlRegs.PLLCR.bit.DIV = val;//CLKIN=(OSCCLK*10.0)/2=(30*10)/2=150Mhz
      EDIS;  
      DisableDog();
      for(iVol= 0; iVol< ( (131072/2)/12 ); iVol++)//PLL使能完成需要等待一段时间
      {
   
      }
   }
}

void InitPeripheralClocks(void)//初始化外设时钟
{
   EALLOW;
   SysCtrlRegs.HISPCP.all = 0x0001;//高速时钟定标HSPCLK=SYSCLKOUT/(HISPCP*2)=150/(1*2)=75Mhz
   SysCtrlRegs.LOSPCP.all = 0x0002;//低速时钟定标LSPCLK=SYSCLKOUT/(LOSPCP*2)=150/(2*2)=37.5Mhz
    
// 使能一些外设时钟:EVA,EVB,SCIA, SCIB ,MCBSP,SPI,ECAN,ADC的时钟被使能
// 通常为了降低功耗,没用到的外设,时钟关闭
   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
   SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1;
   SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
   EDIS;
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:单链表操作
后一篇:山寨货
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有