2019-07-18 14:59发布
xianhehu 发表于 2016-12-7 17:31 程序明显有问题啊! if(!stepCnt) 是当stepCnt等于0是才会进入。结果就是第一步会进入这个函数然后加速,然后后面永远不会在进入,最后就是永远处于这个速度,永远不会减速,不会停止。
黑眼圈红了 发表于 2016-12-8 09:38 这一点是因为我希望主程序给电机步数的时候,电机都是从一开始进入加减速,if(!stepCnt)里面包含的程序只是为了分配加减速步数而已。走过第一步之后不需要再进入这一段程序,直接跑到后面的加速段或者减速段执行就好了。匀速段则不会改变定时器的值。经过昨天的测试,我发现问题出在减速段的条件上面,应该是else if(ste ...
xianhehu 发表于 2016-12-9 17:55 你后面的所有加速减速代码不都在if(!stepCnt)这个条件语句块之内的吗,你进不了这个条件,你后面怎么可能进去?stepCnt等于0才进入,后面胡if(stepCnt>lessSpeedStep)还有意义吗? 或者你程序改了,不是上面发的那个?
最多设置5个标签!
这一点是因为我希望主程序给电机步数的时候,电机都是从一开始进入加减速,if(!stepCnt)里面包含的程序只是为了分配加减速步数而已。走过第一步之后不需要再进入这一段程序,直接跑到后面的加速段或者减速段执行就好了。匀速段则不会改变定时器的值。经过昨天的测试,我发现问题出在减速段的条件上面,应该是else if(stepCnt>lessSpeedStep),去掉等号就可以加减速了。不过现在主要的问题是无论我怎么设置加减速数组,电机声音都很大。
你后面的所有加速减速代码不都在if(!stepCnt)这个条件语句块之内的吗,你进不了这个条件,你后面怎么可能进去?stepCnt等于0才进入,后面胡if(stepCnt>lessSpeedStep)还有意义吗? 或者你程序改了,不是上面发的那个?
只在第一次启动的时候进入if(!stepCnt),在这段程序里实现加减速步数的计算,第二次以及之后的步数因为已经不等于0了,所以进入中断的时候直接跳到判断stepCnt与addSpeedStep或者lessSpeedStep的大小,从而得知电机是在加速段还是减速段,然后进入相应的程序、
一周热门 更多>