|
unit BatteryADconvert()
{
unit addata;
DDRC&=~(1<<PC2); //Pc2口设置为输入,无上垃电阻,高阻态
PORTC&=~(1<<PC2);
//SFIOR =0; //连续转换模式
ADMUX=0X42; //AVCC,AREF引脚外加滤波电容
//右对齐,ADC2单端输入
ADCSRA =0X80; //启动ADC转换
ADCSRA |=(1<<ADSC); //开始转换
while(!(ADCSRA&(1<<ADIF))); //等待转换结束,ADIF置1
addata=ADCL;
addata=addata+ADCH*256; //把ADCL,ADCH转换成10进制
ADCSRA |=(1<<ADIF); //对ADIF写”1”,ADIF清0
ADCSRA =0X00; //关闭ADC转换
return addata;
}
我是想将PC2口采集到的电压转换 ,然后判断是否在电池的最低和最高电压之间。请问addata可以直接是电压值,然后进行比较吗?还是有其他的写法呢?如果是温度感知采样也是一样吗? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|