標(biāo)題: [求助]AVR內(nèi)部AD模塊的求助!懇請(qǐng)各位大蝦們幫個(gè)忙吧…… [打印本頁]

作者: 海浩    時(shí)間: 2011-8-16 21:53
標(biāo)題: [求助]AVR內(nèi)部AD模塊的求助!懇請(qǐng)各位大蝦們幫個(gè)忙吧……

各位大蝦們!我想用128內(nèi)部的AD轉(zhuǎn)換器,但是我測(cè)試了一下發(fā)現(xiàn),前面設(shè)置都是正確的,用萬用表測(cè)了一下AREF腳,電壓是2.52V,基本正確,后來我在轉(zhuǎn)換結(jié)束標(biāo)志位設(shè)定了一個(gè)LED閃爍,發(fā)現(xiàn)LED一直都在閃爍,這就說明AD一直都在轉(zhuǎn)換當(dāng)中,沒有停下!所以我懇請(qǐng)各位大俠能幫我答疑一下!程序代碼如下:
void init_adc()
{
  ADCSR=0X00;     //設(shè)置ADC前,禁止ADC
  ADMUX=BIT(REFS1)|BIT(REFS0);   //設(shè)置ADC內(nèi)置參考電壓為2.56V的片內(nèi)基準(zhǔn)電源
  ADMUX|=BIT(ADLAR);     //ADC轉(zhuǎn)換結(jié)果左對(duì)齊,直接取ADCH的8位數(shù)據(jù)
  ADCSR=BIT(ADEN)|BIT(ADPS1)|BIT(ADPS0)|BIT(ADPS2);  //ADC使能,128分頻
}

unsigned char get_adcdata(void)
{
  unsigned char volt;
//  ADMUX=BIT(MUX0)|BIT(MUX1)|BIT(MUX2)|BIT(MUX3);           //選擇通道3,電池電壓通道
  ADMUX|=0;
  ADCSR|=BIT(ADSC);  //啟動(dòng)單次ADC轉(zhuǎn)換
  while (!(ADCSR&BIT(ADIF)))  //等待轉(zhuǎn)換結(jié)束
  {
    PORTD &= ~BIT(0);
    delay_ms(100);
    PORTD |= BIT(0);
    delay_ms(100);
  }
  ADCSR&=~(BIT(ADIF));    //清楚ADIF位
  volt=ADCH;
  return volt;
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1