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

📄 ad.h

📁 基于dsp2812的1024点快速傅里叶变换FFT
💻 H
字号:
#include "DSP281x_Device.h"  

void ConfigureGpio(void);
void InitSystem(void);
interrupt void adc_isr(void); 

int adcInput0[1024];
int adcInput1[1024];
unsigned int adcCount=0;

void  main(void)
{
   unsigned int LED[8]={0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080};
   
   
    InitSystem(); 
    ConfigureGpio(); 
    InitPieCtrl();
    
    InitPieVectTable();
     InitAdc();
     
    EALLOW;
    PieVectTable.ADCINT=&adc_isr;
    EDIS;
    
    PieCtrlRegs.PIEIER1.bit.INTx6=1;
    
    IER=1;
    
    EINT;
    ERTM; 
    
    AdcRegs.ADCTRL1.bit.SEQ_CASC=0;
    AdcRegs.ADCTRL1.bit.CONT_RUN=0;
    AdcRegs.ADCTRL1.bit.CPS=0;
    AdcRegs.ADCMAXCONV.all=0x0001;
    
    
    AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x8;
    AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;
    AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
    AdcRegs.ADCTRL3.bit.ADDCLKPS=2;
    
    
    EvaRegs.GPTCONA.bit.TCMPOE=0;
    
    
    EvaRegs.GPTCONA.bit.T1PIN=0;
    EvaRegs.GPTCONA.bit.T1TOADC=2;
    
    EvaRegs.T1CON.bit.FREE=0;
    EvaRegs.T1CON.bit.SOFT=0;
    EvaRegs.T1CON.bit.TMODE=2;
    EvaRegs.T1CON.bit.TPS=7;
    EvaRegs.T1CON.bit.TENABLE=1;
    EvaRegs.T1CON.bit.TCLKS10=0;
    EvaRegs.T1CON.bit.TCLD10=0; 
    EvaRegs.T1CON.bit.TECMPR=0;
    
    
    EvaRegs.T1PR.=5860;
    
    
    while(1)
    {
      GpioDataRegs.GPBDAT.all=LED[adcCount>>7];
     }
  }
    
   void ConfigureGpio(void)
   {
    EALLOW;
    GpioMuxRegs.GPAMUX.all = 0x0;    //将所有GPIO口的引脚配制成通用I/O口
    GpioMuxRegs.GPBMUX.all = 0x0;
    GpioMuxRegs.GPDMUX.all = 0x0;
    GpioMuxRegs.GPFMUX.all = 0x0;
    GpioMuxRegs.GPEMUX.all = 0x0;
    GpioMuxRegs.GPGMUX.all = 0x0;
    
    GpioMuxRegs.GPADIR.all = 0x0;
    GpioMuxRegs.GPBDIR.all = 0x00FF;
    
    GpioMuxRegs.GPDDIR.all = 0x0;
    GpioMuxRegs.GPEDIR.all = 0x0;
    GpioMuxRegs.GPFDIR.all = 0x0;
    GpioMuxRegs.GPGDIR.all = 0x0;
    
    GpioMuxRegs.GPAQUAL.all = 0x0;
    GpioMuxRegs.GPBQUAL.all = 0x0;
    GpioMuxRegs.GPDQUAL.all = 0x0;
    GpioMuxRegs.GPEQUAL.all = 0x0;
    EDIS;
    } 
    
    void InitSystem(void)
    {
        EALLOW;
        SysCtrlRegs.WDCR=0x00E8;
        SysCtrlRegs.PLLCR.bit.DIV=10;
        
        SysCtrlRegs.HISPCP.all=0x1;
        SysCtrlRegs.LOSPCP.all=0x2;
        
        
        //根据需要时能各种外设模块的时钟
        SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
        SysCtrlRegs.PCLKCR.bit.EVBENCLK=0;
        SysCtrlRegs.PCLKCR.bit.SCIAENCLK=0;
        SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0;
        SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0;
        SysCtrlRegs.PCLKCR.bit.SPIENCLK=0;
        SysCtrlRegs.PCLKCR.bit.ECANENCLK=0;
        SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
        EDIS;
     }
       
       
     interrupt void adc_isr(void)
     {
     //将采样值送入循环采样数组中
     adcInput0[adcCount]=AdcRegs.ADCRESULT0>>4;
     adcInput1[adcCount]=AdcRegs.ADCRESULT1>>4;
     adcInput1[adcCount]-=2047;   //转化为12位有符号数
     
     
     //实现数组的循环访问
     adcCount++;
     if(adcCount>1023)adcCount=0;
     
     //重新初始化ADC采样序列
     AdcRegs.ADCTRL2.bit.RST_SEQ1=1;  //复位SEQ1  
     AdcRegs.ADCST.bit.INT_SEQ1_CLR=1; //清除中断位INT SEQ1
     PieCtrlRegs.PIEACK.all=PIEACK_GROUP1; //清除PIE1的中断响应位
     }
     
    
       

⌨️ 快捷键说明

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