找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4658|回復: 0
打印 上一主題 下一主題
收起左側

[求助]AVR內部AD模塊的求助!懇請各位大蝦們幫個忙吧……

[復制鏈接]
跳轉到指定樓層
樓主
ID:30377 發(fā)表于 2011-8-16 21:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

各位大蝦們!我想用128內部的AD轉換器,但是我測試了一下發(fā)現(xiàn),前面設置都是正確的,用萬用表測了一下AREF腳,電壓是2.52V,基本正確,后來我在轉換結束標志位設定了一個LED閃爍,發(fā)現(xiàn)LED一直都在閃爍,這就說明AD一直都在轉換當中,沒有停下!所以我懇請各位大俠能幫我答疑一下!程序代碼如下:
void init_adc()
{
  ADCSR=0X00;     //設置ADC前,禁止ADC
  ADMUX=BIT(REFS1)|BIT(REFS0);   //設置ADC內置參考電壓為2.56V的片內基準電源
  ADMUX|=BIT(ADLAR);     //ADC轉換結果左對齊,直接取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);  //啟動單次ADC轉換
  while (!(ADCSR&BIT(ADIF)))  //等待轉換結束
  {
    PORTD &= ~BIT(0);
    delay_ms(100);
    PORTD |= BIT(0);
    delay_ms(100);
  }
  ADCSR&=~(BIT(ADIF));    //清楚ADIF位
  volt=ADCH;
  return volt;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表