#include "math.h" #include "float.h"
#define RmsConstA 1
#define N 90
double tempf1,tempsum,mrms_org[3];
int i,value[3],Mabufa[100];
for(i=10;i<N;i++) //求A相N点的平方和 { tempf1=Mabufa; tempf1*=tempf1; tempsum+=tempf1; } mrms_org[0] = sqrt(tempsum/80.0); //调用开方函数 mrms[0] =(double)RmsConstA*mrms_org[0]; //乘上相应的系数后保存 value[0]=(int)mrms[0];
上面的计算在仿真运行时结果都正常,但写入外部FLASH脱机运行后结果就老显示益处的结果 (-1或32767),这里计算的值是通过232口送给显示屏显示。
Mabufa中的数是通过中断读取外部的数。
我调试了一下做整数运行都很正常,但一做浮点数乘法或开方就有问题。求高手指点啊。 [此贴子已经被作者于2005-11-16 9:21:37编辑过]
[此贴子已经被作者于2005-11-16 9:33:55编辑过] |