TANGDYNASTY_521 发表于 2006-3-31 23:07:55

m48+熱敏電阻做的多路溫度顯示事例中AD转换..

先请看"低成本m48+熱敏電阻做的多路溫度顯示及音樂警報裝置"中一段关于AD转换的描述:

#pragma interrupt_handler adc_isr:iv_ADC

void adc_isr(void)

{   

    uint temp;

   temp = ADCL;

   temp |= (int)ADCH<<8;

   temp = (49*temp)/10;

   v += temp;

}

void get_adc_value(uchar adc_pin)

{   

    uchar i;

   v = 0x0000;

   ADMUX = (1<<REFS0)|adc_pin;

//   for(i=0;i<2;i++)



ADCSRA |= (1<<ADSC);

   delay_nms(1);   

//while((ADCSRA & (1<<ADIF))==0);

   ADCSRA &= ~(1<<ADSC);

请问以上程序到底是单次转换还是连续呢,在get_adc_value(uchar adc_pin) 子程序里:

ADCSRA |= (1<<ADSC);

   delay_nms(1);

ADCSRA &= ~(1<<ADSC);

第2,3句要实现什么设置啊,望请哪位赐教!小弟不胜感激

avrboy 发表于 2006-6-8 16:29:24

是单次转换

delay_nms(1); //因為adc轉換要時間的

ADCSRA &= ~(1<<ADSC);// 這句可以不要的.只是清adsc
页: [1]
查看完整版本: m48+熱敏電阻做的多路溫度顯示事例中AD转换..