打印

求助香主,ADC及DMA时间问题

[复制链接]
1350|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forbin936|  楼主 | 2013-2-28 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 forbin936 于 2013-2-28 11:25 编辑

我要实现的是首次采样后DMA中断置标志位,主函数处理数据,再等20ms,再采样一次,再等20ms再采样。。。
gTimer在嘀嗒中断函数内++
现在问题出现了,首次采样后,处理完数据gTimer是16ms,但是第二次初始化ADC,重启开启采样后,处理完数据gTimer就达到32ms了,我做的这个是要严格控制时隙的,香主求救,同样是gTimer=0后初始化ADC和DMA,为什么两次时间会差这么多?
   if (Adc_Start_flag==0&&gTimer==Syn_Time)        
        {        gTimer=0;
                forbinADC_Init();
                Adc_Start_flag=1;
        }
        if (Adc_Start_flag==1&&gTimer==Code_Time)        
        {        gTimer=0;
                forbinADC_Init();
        }
void SysTick_Handler(void) 
{
    gTimer++;
}
void DMAChannel1_IRQHandler()
{
  if(DMA_GetITStatus(DMA1_IT_TC1))
  {
          ADC_Cmd(ADC1,DISABLE);
        DMA_Cmd(DMA1_Channel1, DISABLE);  
          DMA_Done_flag=1;
        DMA_ClearITPendingBit(DMA1_IT_GL1);
  }
}




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

本版积分规则

1

主题

9

帖子

1

粉丝