labixiaojing

    1. DSP2812AD采样 8/6221 微控制器 MCU 2014-07-15
      ltbytyn 发表于 2014-7-14 19:59 基本上一个周期采10个点左右。难道每个周期周期采样点有可能不确定吗? 不要搞太复杂。先把程序优化成单一 ...
      我本来就是单一频率信号采样的,只是因为有断层现象试一下不同频率输入会不会有什么不同。附上程序,麻烦帮忙看下 void  main(void) {     InitSystem();            //初始化DSP内核寄存器     InitPieCtrl();     InitDIDO();        //调用PIE控制单元初始化函数     InitPieVectTable();         //  调用PIE向量表初始化函数     InitAdc();                   //调用ADC模块的基本初始化函数        EALLOW;     PieVectTable.ADCINT=&adc_isr;    //重新设置PIE向量表中ADc的中断入口向量     EDIS;         PieCtrlRegs.PIEIER1.bit.INTx6=1;     //使能PIE中断分组1中的ADC中断     GpioDataRegs.GPASET.bit.GPIOA0=1;     GpioDataRegs.GPACLEAR.bit.GPIOA0=1;             IER=1;          //使能和ADC中断相连的CPU INT1中断         EINT;           //使能全局中断位INTM     ERTM;           // 使能全局实时调试中断DBGM             /* SET ADC*/     AdcRegs.ADCTRL3.bit.SMODE_SEL=0;         AdcRegs.ADCTRL1.bit.SEQ_CASC=0;//双排序器工作模式     AdcRegs.ADCTRL1.bit.CONT_RUN=0;//启动-停止模式     AdcRegs.ADCTRL1.bit.CPS=0;     //FCLK=CLK/1     AdcRegs.ADCMAXCONV.all=2;     AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;     AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x01;     AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x02;     AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;       //使能EVA引起的中断     AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;           AdcRegs.ADCTRL3.bit.ADCCLKPS=2;       //ADc模块的核心时钟频率=HSPCLK/4         /* SET EVA*/     EvaRegs.GPTCONA.bit.TCMPOE=0;     //禁止比较输出     EvaRegs.GPTCONA.bit.T1PIN=0;     EvaRegs.GPTCONA.bit.T1TOADC=2;       //设置周期中断标志启动ADC     EvaRegs.T1CON.bit.FREE=0;    //防真挂起时,定时器1立即停止工作     EvaRegs.T1CON.bit.SOFT=0;     EvaRegs.T1CON.bit.TMODE=2;   //连续增计数模式     EvaRegs.T1CON.bit.TPS=7;     //设置定时器时钟频率为HSPCLK/128     EvaRegs.T1CON.bit.TENABLE=1;     //允许定时器操作     EvaRegs.T1CON.bit.TCLKS10=0;     //内部时钟     EvaRegs.T1CON.bit.TCLD10=0;     //计数器为0时重载     EvaRegs.T1CON.bit.TECMPR=0;     //禁止比较操作     EvaRegs.T1PR=2000;//300hz         while(1)     {                                } }     void InitSystem(void)     {         EALLOW;         SysCtrlRegs.WDCR=0x00E8;        //禁止看门狗模块         SysCtrlRegs.PLLCR.bit.DIV=10;    //将CPU的PLL倍频系数设为5                  SysCtrlRegs.HISPCP.all=0x1;      //高速时钟的预定标器设置成除以2         SysCtrlRegs.LOSPCP.all=0x2;      //低速时钟的预定标器设置成除以4                           //根据需要时能各种外设模块的时钟         SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;         SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;         EDIS;      }                                    interrupt void adc_isr(void)      {                EALLOW;         temp0[x]=AdcRegs.ADCRESULT0>>4;         temp1[x]=AdcRegs.ADCRESULT1>>4;         temp2[x]=AdcRegs.ADCRESULT2>>4;           x++;         if(x==512)           {               x=0;           }                           //重新初始化ADC采样序列         AdcRegs.ADCTRL2.bit.RST_SEQ1=1;  //复位SEQ1           AdcRegs.ADCST.bit.INT_SEQ1_CLR=1; //清除中断位INT SEQ1         PieCtrlRegs.PIEACK.all=PIEACK_GROUP1; //清除PIE1的中断响应位         EDIS;             }
    2. DSP2812AD采样 8/6221 微控制器 MCU 2014-07-14
      ltbytyn 发表于 2014-7-12 23:30 不同频率的信号,你是一个周波采样几个点,还是20ms采样几个点算的?
      不同频率改变采样率,基本上一个周期采10个点左右,关键导师要求实际信号频率只有几Hz到十几Hz
    3. DSP2812AD采样 8/6221 微控制器 MCU 2014-07-11
      定时器周期中断启动,而且发现频率高于50Hz时没有问题,频率低于40Hz会出现这种现象

最近访客

< 1/1 >

统计信息

已有6人来访过

  • 芯积分:--
  • 好友:--
  • 主题:2
  • 回复:3

留言

你需要登录后才可以留言 登录 | 注册


cbq2007@126.com 2015-3-30
你好 请问你的问题解决了吗
查看全部