[STM32F0] 请教M0的数学库为什么计算不正确

[复制链接]
 楼主| itelectron 发表于 2016-4-17 12:47 | 显示全部楼层 |阅读模式
  1. signed short temp0=25;
  2. signed short temp1=2;
  3. signed short temp2=2;

  4. int main(void)
  5. {
  6.        
  7.         arm_sqrt_q15(temp0,&temp1);
  8.                 arm_sqrt_q15(64,&temp2);
  9.        
  10.         while(1)
  11.         {
  12.        

  13.         }

  14. }
 楼主| itelectron 发表于 2016-4-17 13:08 | 显示全部楼层
 楼主| itelectron 发表于 2016-4-17 13:09 | 显示全部楼层
1为什么25开根号出来是0X389
2为什么64开根号出来是0X5A8
jar1866 发表于 2016-4-18 10:43 | 显示全部楼层
请先看以下文档,
http://wenku.baidu.com/link?url=-ffGFV-jMoLjXWXHtfswm52tn1EuBSpbOtFTOHcjbo8EjxSHAvqzgzxVqZSbrtaDPUxyJB7_l81FFOrMMNrP6pvhojRGpy63_700jH3f_aO
以下为解释:
arm_sqrt_q15(64)=sqrt(64/32678)
算出的结果也是q15定点形式,应在上面结果乘以32678
result = sqrt(64/32678)*32678 = 8*128*sqrt(2) = 0x5A8
 楼主| itelectron 发表于 2016-4-20 20:49 | 显示全部楼层
本帖最后由 itelectron 于 2016-4-20 21:07 编辑

谢谢  那么提供的 数学库算出的 来 的结果  在转换 回去 那不是 更费时间 么?
那这个ARM数学库又有什么意义呢?


 楼主| itelectron 发表于 2016-4-20 21:12 | 显示全部楼层
  /**
   * @brief  Q15 square root function.
   * @param[in]   in     input value.  The range of the input value is [0 +1) or 0x0000 to 0x7FFF.
   * @param[out]  *pOut  square root of input value.
   * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if
   * <code>in</code> is negative value and returns zero output for negative values.
   */
  arm_status arm_sqrt_q15(
  q15_t in,
  q15_t * pOut);

  /**
   * @} end of SQRT group
   */



而且这个函数 输入范围 是  signed short   64*32768  已经超出范围了
 楼主| itelectron 发表于 2016-4-20 21:15 | 显示全部楼层
也就是每次计算 后要除 181  就能得到 想要的结果!
   arm_sqrt_q15(64,&temp2);
         temp2/=181;

energyplants 发表于 2016-4-20 22:44 | 显示全部楼层
M0支持浮点数吗?
myxiaonia 发表于 2016-4-21 08:08 | 显示全部楼层
q格式表示的定点小数,自有其优点,要知道不支持浮点数的mcu是用软件模拟浮点数的,很麻烦性能也不好
color_sky 发表于 2016-4-21 12:57 | 显示全部楼层
我有一个开源的colorsky开源机器人项目。
capturesthe 发表于 2016-4-21 22:27 | 显示全部楼层

内存那么小还能进行浮点数运算,是不是该用F4啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2761

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部

274

主题

2761

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部