[STM32F1] 一个带除法公式的疑惑

[复制链接]
 楼主| 电子过客 发表于 2016-9-10 11:02 | 显示全部楼层 |阅读模式
int16_t   Wind1_post;  //当前位置
volatile uint16_t  Wind1_allrun;         //全程运行时间
volatile uint16_t  Wind1_diffpost_RUN;   //已经运行时间
uint16_t   Wind1_oldpost;  //原来的位置
Wind1_post=Wind1_oldpost+Wind1_diffpost_RUN/Wind1_allrun*100;
这是计算当前位置的公式:有哪里不对啊

仿真时候出现Wind1_post 不能实时赋值,
只有到最后时候Wind1_post=Wind1_oldpost  好像Wind1_diffpost_RUN/Wind1_allrun*100; 这个表示是不对


还有
就看到Wind1_diffpost_RUN 变量不断的变化
Wind1_post变量 一定都没有 跟着Wind1_diffpost_RUN变化, 始终等于 oldpost   
各位哪里出现问题了啊
mmuuss586 发表于 2016-9-10 13:16 | 显示全部楼层
全都定义成浮点数试下;
duanks 发表于 2016-9-10 13:25 | 显示全部楼层
先乘再除,变量改为uint32_t
 楼主| 电子过客 发表于 2016-9-10 13:47 | 显示全部楼层
duanks 发表于 2016-9-10 13:25
先乘再除,变量改为uint32_t

谢谢
lgq1542380129 发表于 2016-9-11 09:06 | 显示全部楼层
楼主定义的都是整型,按楼主的写法,问题就来了整数除以整数依然是整数,如果除数和被除数的商在0-1之间,就会被保存为0了。
Bjorn 发表于 2016-9-11 20:56 | 显示全部楼层
变量类型改下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

210

帖子

2

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

55

主题

210

帖子

2

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