小弟我准备测量电网电压值,原理图是 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的相关代码,能否借小弟参考下。
|