请教各位大神,为啥宏定义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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这是几位单片机?
是不是计算的中间过程超过了0xff ff能表达的范围?
应该不会,我定义的变量是unsigned int 型,
ACT1_RCLA_STOP_ON最多也就420
我算也是348
尴尬了,我在线仿真也是348,你用的什么开发环境?
一周热门 更多>