将对数值转换为线性(xc8)

时间:2018-04-23 09:50:53

标签: pic xc8

我打算在PIC16F系列器件中使用ADC将来自对数输出传感器的输入“转换”为线性标度,以便我可以在PIC的PORT上呈现它(作为“线性二进制值”),尽管分辨率降低。

Arduino的传感器手册中有一些示例代码 -

float RawToLux(int raw)
{
float logLux = raw * logRange / rawRange;
return pow(10, logLux);
}

XC8(Microchip的C编译器)中是否有类似的东西?我看了,但似乎只有将线性值转换为log的函数,或者我是傻吗?

此致 拉尔夫

1 个答案:

答案 0 :(得分:1)

请查看xc8编译器用户指南。 pow功能也包括在内。类似的东西:

#include <math.h>
double logRange = ...;
double rawRange = ...; 

double RawToLux(int raw)
{
    double logLux = raw * logRange / rawRange;
    return pow(10.0, logLux);
}

应该有用。