PIC 16F1788读取电压

PIC 16F1788 reading voltages

我是 PIC 编程的新手,需要一些关于我的代码是否走在正确轨道上的建议。我正在编写一个函数,它从端口 7 读取输入值 (0-5V) 和 returns 基于 (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);
}

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

您不需要重新配置循环内的引脚。启动配置应发生在 main.

的开头

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

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

然后

Real = ADC_Read(7) * conversion_factor;

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