打印
[STM8]

数据计算错误求教。。

[复制链接]
762|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 是多少值呢?

使用特权

评论回复
5
wowow| | 2015-5-26 13:46 | 只看该作者
你期望的结果是什么?得到的结果是什么?

使用特权

评论回复
6
zh113214| | 2015-5-26 20:28 | 只看该作者
SPD1 =(SPD1_max-SPD1_min)*(spdgoal_h - 1) / MAXSPD + SPD1_min;
这个公式没什么问题吗?

使用特权

评论回复
7
aaa1125456| | 2015-6-2 11:07 | 只看该作者
我不太懂 要不强制转换下SPD1 =long((SPD1_max-SPD1_min)*(spdgoal_h - 1) / MAXSPD + SPD1_min);

使用特权

评论回复
8
aaa1125456| | 2015-6-2 11:13 | 只看该作者
难道是   /  当 除以想了  这个是得到商   不会得到小数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

212

帖子

0

粉丝