打印
[AVR单片机]

求教 第一次AD转换数据处理正确,第二次全错了

[复制链接]
1462|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wcli63|  楼主 | 2010-8-9 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD开始转换
void AD_CHANGE(void)
{
  ADMUX=0X43;
  ADCSRA|=(1<<ADSC);
  DELAY(50);
  ADC_DATAL=ADCL;
  ADC_DATAH=ADCH;
  ADC_DATAH=ADC_DATAH&0X03;
  ADMUX=0X44;
  //ADCSRA=0X96;
  ADCSRA|=(1<<ADSC);
  DELAY(50);
  ADC2_DATAL=ADCL;
  ADC2_DATAH=ADCH;
  ADC2_DATAH=ADC2_DATAH&0X03;
}

AD采样数据处理
AD_CHANGE();
    DELAY(10);
    AD_DATA=ADC_DATAH*256+ADC_DATAL;
    if (AD_DATA>390)
    {
      wd_warn_flag=0;
   if (AD_DATA<=705) TEMP_DATA1=TEMP_DATA1+(AD_DATA)*10/91-42;
   else if(AD_DATA>705) TEMP_DATA1=TEMP_DATA1+AD_DATA/7-65;
    }
    AD_COUNT=AD_COUNT+1;
    if (AD_COUNT>=300)
    {
      AD_COUNT=0;
   TEMP_DATA2=TEMP_DATA1/300;
      if (TEMP_DATA2<35) TEMP_DATA2=(TEMP_DATA2*XLTEMP)/50;
   else TEMP_DATA2=(TEMP_DATA2*XHTEMP)/50;
   TEMP_DATA1=0;
    }
    if (TEMP_DATA2!=TEMP_DATA)
    {
      AD_TEST_FLAG=1;
   if (TEST_COUNT>=200)
   {
        TEMP_DATA=TEMP_DATA2;
     TEST_COUNT=0;
     AD_TEST_FLAG=0;
   }
    }
    else
    {
      TEST_COUNT=0;
   AD_TEST_FLAG=0;
    }

AD2_DATA=ADC2_DATAH*256+ADC2_DATAL;
    if (AD2_DATA>390)
    {
      wd_warn_flag=0;
   if (AD2_DATA<=705) TEMP2_DATA1=TEMP2_DATA1+(AD2_DATA)*10/91-42;
   else if(AD2_DATA>705) TEMP2_DATA1=TEMP2_DATA1+AD2_DATA/7-65;
    }
    AD2_COUNT=AD2_COUNT+1;
    if (AD2_COUNT>=300)
    {
      AD2_COUNT=0;
   TEMP2_DATA2=TEMP2_DATA1/300;
      if (TEMP2_DATA2<35) TEMP2_DATA2=(TEMP2_DATA2*XLTEMP)/50;
   else TEMP2_DATA2=(TEMP2_DATA2*XHTEMP)/50;
   TEMP2_DATA1=0;
    }
    if (TEMP2_DATA2!=TEMP_DATA)
    {
      AD_TEST_FLAG=1;
   if (TEST_COUNT>=200)
   {
        TEMP_DATA=TEMP_DATA2;
     TEST_COUNT=0;
     AD_TEST_FLAG=0;
   }
    }
    else
    {
      TEST_COUNT=0;
   AD_TEST_FLAG=0;
    }

相关帖子

沙发
wcli63|  楼主 | 2010-8-9 15:07 | 只看该作者
是不是我写的第2次把第一次覆盖了

使用特权

评论回复
板凳
wcli63|  楼主 | 2010-8-9 15:09 | 只看该作者
还有我的第二次采样和数据处理就是复制第一次的,如果没有复制,第一次采样数据处理是对的。

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝