你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

数据计算顺序影响计算结果

[复制链接]
你好我好大家好! 提问时间:2017-11-30 18:53 /
        程序中宏定义一下常量:                                            #define BASE_FREQ  400

                                            #define P                          16
        根据以上宏定义,计算以下公式:BASE_SPEED=120*BASE_FREQ /P,然后将BASE_SPEED带入速度计算公式,在电机不转动的情况下,上位机反馈转速在0与10000多之间来回跳动,检查代码发现,120*BASE_FREQ =120*400=48000>32767,int为16为带符号整形数,范围为-32768~32767,因为在计算120*BASE_FREQ 会将这个中间结果存入int类型的内存区域,这时候4800会溢出内存,所以会导致上述现象。将上式改为BASE_SPEED=120*(BASE_FREQ /P)即可避免上述问题。
收藏 评论0 发布时间:2017-11-30 18:53

举报

0个回答

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版