【问题标题】:PIC 16F1788 reading voltagesPIC 16F1788 读取电压
【发布时间】:2015-02-10 04:50:44
【问题描述】:

我是 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);
}

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

【问题讨论】:

  • 帖子一经回复,请勿删除90%。留下它,以便其他人受益。
  • sam brosteain,这是您删除大部分帖子后第二次回滚帖子。如果您试图做其他事情而不是掩盖自己的帖子,请发表评论。

标签: c pic microprocessors


【解决方案1】:

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

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

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

然后做

Real = ADC_Read(7) * conversion_factor;

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

【讨论】:

  • 我有一个问题你不介意是 (1
  • (1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多