LM3S2B93AD不采集怎么回事??

2019-03-24 16:20发布

AD不采集数据,用周立功的例子也不行,高手帮忙啊,我调了几天了 /*********************************************************************************************************
** Function name:      ADC_Trigger
** Descriptions:       配置A/D的触发源,用户根据实际需要在这个函数里配置对应的触发源
** input parameters:   无
** output parameters:  无
** Returned value:     无  
*********************************************************************************************************/
void ADC_Trigger(void)
{
    ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_TIMER, 0);            /*  配置为定时器触发A/D         */
    SysCtlPeripheralEnable( SYSCTL_PERIPH_TIMER0 );                     /*  使能定时器0外设             */
    TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER);                  /*  配置为32位周期定时器        */
    TimerLoadSet(TIMER0_BASE, TIMER_A, 0xfff0);                         /*  设置定时器装载值为0xfff0    */
    TimerControlTrigger(TIMER0_BASE, TIMER_A, 1);                    /*  使能触发输出                */
    TimerEnable(TIMER0_BASE, TIMER_A);                                  /*  使能定时器并开始等待边沿事件*/
} /*********************************************************************************************************
** Function name:      ADC_Init
** Descriptions:       A/D初始化
** input parameters:   无
** output parameters:  无
** Returned value:     无  
*********************************************************************************************************/
void ADC_Init(void)
{
    PLLSet();                                                           /*  设置PLL                     */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);  
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);                          /*  使能ADC模块时钟             */
    SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);                         /*  125KSps采样率               */
    ADCSequenceDisable(ADC_BASE, 0);                                    /*  禁能0                       */
 
    IntMasterEnable();                                                  /*  使能处理器中断              */
    IntEnable(INT_ADC0);                                                /*  使能AD中断                  */
    ADCIntEnable(ADC_BASE, 0);                                          /*  使能AD中断模块              */     ADC_Trigger();
   
    /*
     *  确定ADC的采样步数,确定每一步的采样通道,并在每一通道采样后产生中断
     */
                                
    ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_CH0 | ADC_CTL_IE);
    ADCSequenceStepConfigure(ADC_BASE, 0, 1, ADC_CTL_CH1 | ADC_CTL_IE);
    ADCSequenceStepConfigure(ADC_BASE, 0, 2, ADC_CTL_TS  | ADC_CTL_IE | ADC_CTL_END);     ADCHardwareOversampleConfigure(ADC_BASE,16);                        /*  为对16个采样进行平均计算    */     ADCSequenceEnable(ADC_BASE, 0);                                     /*  使能采样序列0               */
  /* ADCSequenceEnable(ADC_BASE, 1); */                              /*  使能采样序列1               */
} /*********************************************************************************************************
** Function name:      ADC_Sequence_0_ISR
** Descriptions:       A/D中断服务程序
** input parameters:   无
** output parameters:  无
** Returned value:     无  
*********************************************************************************************************/
void ADC_Sequence_0_ISR(void)
{
    ADCIntClear(ADC_BASE,0);                                            /*  清除中断标志位              */
    while (!(HWREG(ADC_BASE + 0X04C) & 0X100)) {
        ADCSequenceDataGet(ADC_BASE, 0, &ulData);                       /*  读出10位转换结果            */
        ulData = ((ulData & 0x3ff) * 1000 * 3) / 1023;
        Charge_Val[flag_Charge] = ulData;
        flag_Charge++;
        if ( flag_Charge >= 3) {
            flag_Charge = 0;
            flag_ADC_finish = 1;                                        /*  A/D转换完成标志位           */
        }
    }
}
/*********************************************************************************************************
 END FILE
*********************************************************************************************************/
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
academic
2019-03-25 09:41
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章