在PIC中计算方程

时间:2012-11-24 10:03:23

标签: embedded pic numerical-analysis

在我提出这个问题之前,我将介绍问题的背景。

我的PIC 18F汇编程序例程将Rntc解析为T°C关系。 但精度最好是3位数。

我在汇编程序示例中使用的NTC参考电阻为10000欧姆,对应于25°C的温度。

只有3位可用,方程式解决方案是= xF6,d246 在T的显示上显示,小数点在24和6之间。

计算T的时间,包括牛顿近似值约为800us。这个计算时间看起来比MPlab C好得多。

用于计算等式的sqrt的汇编程序 y = 9.228 * x * x-840.852 * x + 25236.82遇到了缩放问题 b2-4ac ...当我试图包含小数时,数字溢出我的24位数学套件,例如我必须使用a = 9。 b = 840 c = 25236

Q1使用整数,是否有一些使用24位数学计算上述数字的技巧?

1 个答案:

答案 0 :(得分:5)

我认为真正需要的不仅仅是大约10位精度。

等式sqrt(a* x^2 + b*x + c),x = 178..1196给出非常线性的响应。人们甚至不必使用查找表进行分段线性逼近。

线性方程式为y = 3.03x-129

编辑:通过注意到0.03 * x~ = 8/256 * x,可以进一步简化等式;
因此y=a+(a<<1)+(a>>5) - 131; // 8/256 = 0.03125 to be precise.

将常量修改为131以将误差微调为〜零均值。 这些图显示了180<x<1200

的相对误差(左)和绝对误差(右)

Relative vs Absolute error