[STM8] 数据计算错误求教。。

[复制链接]
 楼主| UID0416 发表于 2015-5-26 09:09 | 显示全部楼层 |阅读模式
#define SPD1_max 0x3fff
#define SPD1_min 0x1800
long SPD1;       
spdgoal_h=0x40;
SPD1 =(SPD1_max-SPD1_min)*(spdgoal_h - 1) / MAXSPD + SPD1_min;
大神们,为什么SPD1计算结果错误。
luofeng2g 发表于 2015-5-26 09:13 | 显示全部楼层
本帖最后由 luofeng2g 于 2015-5-26 09:15 编辑

spdgoal_h 这是什么类型的?(SPD1_max-SPD1_min)*(spdgoal_h - 1)应该是这里溢出了;#define SPD1_max ((long)0x3fff)    #define SPD1_min ((long)0x3fff)这样试试

评分

参与人数 1威望 +3 收起 理由
UID0416 + 3 赞一个!

查看全部评分

 楼主| UID0416 发表于 2015-5-26 09:51 | 显示全部楼层
spdgoal_h 是字符型。
mmuuss586 发表于 2015-5-26 12:15 | 显示全部楼层
spdgoal_h 是多少值呢?
wowow 发表于 2015-5-26 13:46 | 显示全部楼层
你期望的结果是什么?得到的结果是什么?
zh113214 发表于 2015-5-26 20:28 | 显示全部楼层
SPD1 =(SPD1_max-SPD1_min)*(spdgoal_h - 1) / MAXSPD + SPD1_min;
这个公式没什么问题吗?
aaa1125456 发表于 2015-6-2 11:07 | 显示全部楼层
我不太懂 要不强制转换下SPD1 =long((SPD1_max-SPD1_min)*(spdgoal_h - 1) / MAXSPD + SPD1_min);
aaa1125456 发表于 2015-6-2 11:13 | 显示全部楼层
难道是   /  当 除以想了  这个是得到商   不会得到小数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

212

帖子

0

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