打印

在计算有效值时关于freescale的sqrt函数的问题

[复制链接]
2776|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小弟我准备测量电网电压值,原理图是 2mA/2mA的电压互感器,一次侧串一个150K的电阻,二次侧并一个300欧的电阻。故300V时,二次侧输出电压应为0.6V。运放是单电源运放,在互感器二次侧的输出电压上叠加了一个2V的偏移。AD参考电压为3V,主芯片是9s08aw32.软件测量方法是标准的RMS算法: 定时器每1ms采样一次电压的瞬时值u,然后计算u的平方,累加20次,除以20. 可问题是:

1.  我在主循环中一调用sqrt函数,则就会程序一直在sqrt中运行,好像sqrt函数一被中 断,就会出问题.

2.keil中的sqrt函数仅需要二三千个CPU周期。但是在freescale中,需要近二万个CPU周期。

3.keil中的sqrt计算完成后不会改变传给sqrt的参数( 如sqrt(x)中的x ) ,但是在freescale中,sqrt却会改变。

3.谁有计算RMS的相关代码,能否借小弟参考下。


相关帖子

沙发
张明峰| | 2009-9-29 08:30 | 只看该作者
这样的场合用浮点数计算肯定死定。
应该用整形或长整型数计算,网上有大堆的快速开根号算法可以用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

1143

帖子

7

粉丝