uint16 reading = 0;
ADCCON3 = 0xb1;
/* Wait for the conversion to be done */
while (!(ADCCON1 & 0x80));//1000 0000
/* Disable channel after done conversion */
ADCCFG &= 0xbf;//(0x40 ^ 0xFF); //按位异或。如1010^1111=0101(二进制)0100 0000 1111 1111 1011 1111 reading = ADCL;
reading|=(int16) (ADCH << 8); reading >>= 8;
return (reading);
我这个程序是用来测PM2.5的,现在成功的通过传感器上的AO口读取到了数据,只是我不知道这里面读取到的reading到底是什么?是实际电压值吗?
还有 程序里面有一句reading*3.3/4096 这是代表什么意义?为什么要进行这一步处理? 我是初学者,麻烦大家帮我解惑。谢谢
kai cheng2:
reading是读到的模拟电压值的数字形式的表示,你那个reading*3.3/4096 应该就是把读到的值转变成实际的电压值。
wen xiu:
回复 kai cheng2:
就是这个reading*3.3/4096 公式是什么?3.3是基准电压,为什么要除4096?
wen xiu:
回复 kai cheng2:
谢谢啦
wen xiu:
回复 kai cheng2:
谢谢