打印

2812 AD采样

[复制链接]
672|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianli1980|  楼主 | 2014-5-14 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
interrupt void  adc_isr(void)
{
        IFR=0x0000;
//        PieCtrl.PIEIFR1.all = 0;
        PieCtrl.PIEACK.all=0xffff;
        ///sampling data
        V1=AdcRegs.RESULT0>>4;//sampling input phase A
               Va=V1*3/4095+ADCLO ;
        i++;
               value[i]=Va;
            IFR=0x0000;
                 PieCtrl.PIEACK.all=0xffff;
                 AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;  //clear interrupt
                 AdcRegs.ADCTRL2.bit.SOC_SEQ1=0;  //
}
void init_adc(void)
{
// Configure ADC
   AdcRegs.ADCMAXCONV.all = 0x0101;       // Setup 2 conv's on SEQ1
   AdcRegs.ADCCHSELSEQ2.bit.conv01 = 0x1; // Setup ADCINA 5 as input .
   AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;  // Enable SOC to start SEQ1
}

我用软件启动ADC,观察value数组的值,有个奇怪的问题,正常情况下一个周期启动ADC采样20次,但是我可以采到20个数据,但是数据都重复4次,也就是这20个数据只有5个不同的值,
value[0]=1
value[1]=1
value[2]=1
value[3]=1
value[4]=2
value[5]=2
value[6]=2
value[7]=2
value[8]=3
value[9]=3
value[10]=3
value[11]=3
数据要重复4次,我观察ADC的启动没问题,一个周期是启动20次,但就是读出来的数据要重复,请问这是因为什么呢?

相关帖子

沙发
zhangmangui| | 2014-5-14 17:30 | 只看该作者
你要确保adc转换完了再去读 不然数据没有更新

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

粉丝