Discuz! Board

标题: 关于ADC采集问题 [打印本页]

作者: 北溟鱼    时间: 2014-8-16 10:41
标题: 关于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
串口打印出的数据
AD_Vaule =536871360;

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

你在线跟踪下再哪里死掉了没有?




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3