#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编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |