PIC 16F1788读取电压

时间:2015-02-10 04:50:44

标签: c pic microprocessors

我是PIC编程的新手,需要一些关于我是否与我的代码走在正确轨道上的建议。我正在编写一个函数,从端口7读取输入值(0-5V)并返回一个基于(0-6.5V)的电压值。

这是我到目前为止所做的:

float measure(void) {

    do {
        ADCON1= 0x00; // configure ports as AD
        buffer.vol = ADC_Read(7); // reads value from port 7
        Real = (buffer.vol/5)*6.5; // converts it to voltage between 0 -6.5v
    } while(1);
}

这看起来是否正确?我需要改变什么吗?

1 个答案:

答案 0 :(得分:1)

您无需在循环内重新配置引脚。启动配置应在main的开头进行。

ADC_Read不返回浮点值;你需要自己转换它。对于12位ADC,您可以

const float conversion_factor = 6.5f / ( ( 1 << 12 ) - 1 );

然后再做

Real = ADC_Read(7) * conversion_factor;

目前尚不清楚buffer的用途。除非您出于某种原因需要保存未缩放的电压,否则不要。