北溟鱼 发表于 2014-8-16 10:41:22

关于ADC采集问题

我在定时器里触发AD采集,在串口里打印出采集数据,结果串口采集的数据都是一个值,求大神帮助AD初始化


      SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);                  //使能ADC模块
      SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC1);
      SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);   //
      GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_2|GPIO_PIN_3);
          ADCSequenceDisable(ADC0_BASE, 0);                            //配置前先禁止采样序列

          //采样序列配置:ADC基址,采样序列编号,触发事件,采样优先级
           ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);

          //采样步进设置:ADC基址,采样序列编号,步值,通道设置
           ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_D |         //差分输入采样
                                              ADC_CTL_CH0 |         //差分通道1:ADC2和ADC3
                                              ADC_CTL_END |
                                              ADC_CTL_IE);
           ADCSequenceEnable(ADC0_BASE, 0);                           //使能采样序列




定时器中断程序
        IntMasterDisable();//关闭外部中断,不进行中断嵌套
        uint32_t ADC_Vaule;

        Pit_Cnt++;
        if( Pit_Cnt>=500)
                Pit_Cnt=0;

    ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);//清除中断标志位
    ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, ROM_SysCtlClockGet());//重新装载定时器时间

    if( !(Pit_Cnt%2))
    ADCSequenceDataGet(ADC0_BASE, 3, &ADC_Vaule);
    else
            ADCProcessorTrigger(ADC0_BASE, 3);

    UARTprintf("AD_Vaule =%d \n",&ADC_Vaule);


    IntMasterEnable();//开启外部中断


北溟鱼 发表于 2014-8-16 10:42:34

串口打印出的数据
AD_Vaule =536871360;

北溟鱼 发表于 2014-8-16 13:29:47

只要是在定时中断里触发AD采集或者读AD采集值,都会使串口失效

admin 发表于 2014-8-16 20:26:48

北溟鱼 发表于 2014-8-16 13:29
只要是在定时中断里触发AD采集或者读AD采集值,都会使串口失效

你在线跟踪下再哪里死掉了没有?
页: [1]
查看完整版本: 关于ADC采集问题