本帖最后由 ccxlslr 于 2012-6-6 09:28 编辑
其用6个通道,5V基准。
前四个通道输入电压不对。输入为10K电阻串个10K热敏电阻
用一样的温度,交换过热敏电阻,前四个通道就是不正确。正常模式,通道先择0--6
//取得温度
int16_t temp_get(unsigned char ch)
{
uint16_t temp;
//温度
ADMUX &= 0xF0;
ADMUX |= ch;
BIT_SET(ADCSRA, ADSC);
while (!BIT_CHK(ADCSRA, ADIF));
temp = ADCL;
temp += ADCH << 8;
BIT_SET(ADCSRA, ADIF);
return adc_val_to_temp(temp);
}
|