CSDN的朋友们帮我啊,感谢

baidu_29735215 2015-10-29 04:22:40
我在做单片机发送脉冲控制伺服驱动器,进而控制电机转,现在,我设置电机6000个脉冲转一圈,并且得到驱动器反馈的脉冲数,此时,偏差=6000-反馈脉冲数,我在发完6000脉冲后就进中断,在中断里设个标志位,然后出来进入一个循环判断偏差是否在我要的精度内,如果大于我要的精度,比如我要精度是+-1,结果偏差为20,我就接着开定时器发脉冲并计数到20再进中断,在判断精度,然后程序结束。 问题出现了,我在补了20脉冲的时候,程序不进入中断,直接又多转了6000个脉冲,然后往回反转,在5980和12000之间来回跳,一段时间后会准确停在6000个脉冲位置。这到底是怎么回事啊???
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cp1149637566 2015-10-30
  • 打赏
  • 举报
回复
引用 5 楼 baidu_29735215的回复:
引用 2 楼 cp1149637566 的回复:
你补充脉冲数后再次判断误差是以6000为基准还是以第一次计算得到的误差数为基准的?如果你是以6000为基准看看是不是原先发出的脉冲数给清零了
找到问题了,还是谢谢你
什么原因呢?希望解决后也能分享下
baidu_29735215 2015-10-30
  • 打赏
  • 举报
回复
引用 2 楼 cp1149637566 的回复:
你补充脉冲数后再次判断误差是以6000为基准还是以第一次计算得到的误差数为基准的?如果你是以6000为基准看看是不是原先发出的脉冲数给清零了
是以第一次发的实际数量脉冲数加上第一次补的脉冲数为基准的
baidu_29735215 2015-10-30
  • 打赏
  • 举报
回复
引用 1 楼 wangfan027 的回复:
要么丢步了 要么反馈错了 要么脉冲计错了
谢谢你的回答,丢没丢步我不清楚,但是反馈和技术都是正确的,如果丢步了,应该怎样修改程序呢?
baidu_29735215 2015-10-30
  • 打赏
  • 举报
回复
引用 2 楼 cp1149637566 的回复:
你补充脉冲数后再次判断误差是以6000为基准还是以第一次计算得到的误差数为基准的?如果你是以6000为基准看看是不是原先发出的脉冲数给清零了
找到问题了,还是谢谢你
cp1149637566 2015-10-29
  • 打赏
  • 举报
回复
你补充脉冲数后再次判断误差是以6000为基准还是以第一次计算得到的误差数为基准的?如果你是以6000为基准看看是不是原先发出的脉冲数给清零了
dceacho 2015-10-29
  • 打赏
  • 举报
回复
要么丢步了 要么反馈错了 要么脉冲计错了

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧