宏定义计算出错

2020-02-11 08:56发布

请教各位大神,为啥宏定义ACT1_RCLA_STOP_ON实际的值并不是420,但是ACT1_RCLA_TAIL_ON的值是80?

#define  RCLB_TAIL_UP                           4
#define  RCLA_TAIL                                11
#define  RCLB_TAIL_DOWN                      6
#define  RCLA_STOP                                7
#define  RCLB_STOP                                7

#define  ACT1_CYCLE                              200  //周期200ms
#define  ACT1_RATIO                              10   //系数
#define  ACT1_RCLA_WAIT                       1500 //1500ms

#define  ACT1_RCLA_TAIL_ON                ((RCLB_TAIL_UP*ACT1_CYCLE)/ACT1_RATIO)     // 80  
#define  ACT1_RCLA_STOP_ON    (((RCLA_TAIL*ACT1_CYCLE)+(RCLB_TAIL_DOWN*ACT1_CYCLE)+ACT1_RCLA_TAIL_ON)/ACT1_RATIO))// 420
#define  ACT1_RCLA_STOP_OFF             ((RCLA_STOP*ACT1_CYCLE)+ACT1_RCLA_WAIT+ACT1_RCLA_STOP_ON)               // 710
#define  ACT1_RCLA_TAIL_OFF              ((RCLA_STOP*ACT1_CYCLE)+(RCLB_TAIL_DOWN*ACT1_CYCLE)+ACT1_RCLA_STOP_OFF) //970
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
luobote55
1楼-- · 2020-02-11 11:41
#define  ACT1_RCLA_TAIL_ON                ((RCLB_TAIL_UP*ACT1_CYCLE)/ACT1_RATIO)     // 80  
4 * 200 / 10 = 80 没毛病啊。

#define  ACT1_RCLA_STOP_ON    (((RCLA_TAIL*ACT1_CYCLE)+(RCLB_TAIL_DOWN*ACT1_CYCLE)+ACT1_RCLA_TAIL_ON)/ACT1_RATIO))// 420
(((11 * 200) + (6 * 200)) + 80) / 10 = 348 没毛病啊。
机器人天空
2楼-- · 2020-02-11 13:41
luobote55 发表于 2018-5-18 22:03
#define  ACT1_RCLA_TAIL_ON                ((RCLB_TAIL_UP*ACT1_CYCLE)/ACT1_RATIO)     // 80  
4 * 200 ...

我也很郁闷,开发环境是codewarrior 11.6
luobote55
3楼-- · 2020-02-11 14:55
 精彩回答 2  元偷偷看……
机器人天空
4楼-- · 2020-02-11 15:25
luobote55 发表于 2018-5-18 22:15
后面注释的值是运行得出的值?

是我自己计算后写的注释
luobote55
5楼-- · 2020-02-11 18:16
机器人天空 发表于 2018-5-18 22:17
是我自己计算后写的注释

那到底是什么问题呢?
能描述清楚吗?
机器人天空
6楼-- · 2020-02-11 20:34
luobote55 发表于 2018-5-18 22:20
那到底是什么问题呢?
能描述清楚吗?

明天再用别的编译器试一下吧

一周热门 更多>