我在MCU里循环地做如下计算:
V*max(X,Y)/sqrt(X^2+Y^2),其中X、Y、V均是unsigned int
使用时发现循环周期长时还能算的过来,一旦循环周期短MCU就算不过来了,造成严重的停顿
请教各位大侠在MCU中对这种计算做优化有啥思路阿?Anything is appreciated~
非常感谢了!
通常不需要覆盖0-65536的范围,这样就不需要64kB。
V*max(X,Y)/sqrt(X^2+Y^2)中有三个自变量
我的理解是不管V了,对X和Y做查表操作,是这个意思吗?
//thanks :)
如果你的精度只要求uint,而你又不想有64的表呢,有个折中的方法.
你每个表项用4个字节,就是2个uint.表项的索引就是开方后的结果,2个uint代表1个范围,在这个范围内的值开方出来的结果都是相同的.
这样你只需要256个表项,就是1024个字节.
但这样你需要花费比65336个表项的时间多.但比较调用sqrt()函数节约多了.