找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 4940|回复: 11

求教大神!!

[复制链接]
发表于 2018-7-29 10:42:21 | 显示全部楼层 |阅读模式
Q:下面这个程序在切换后加等待时间就可以完美运行,不加就会出现紊乱,想请教大神这是什么原因???

微信截图_20180729104130.png
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2018-7-29 10:50:17 | 显示全部楼层
本帖最后由 冰之谷 于 2018-7-29 11:03 编辑

这是一个多任务程序,有时程序之间可能产生冲突,延时有时可以避免多任务程序之间的冲突,给程序转换留出足够时间。
引用中文乐高论坛 kuuxi老师的两句话吧,“当同时发生的任务可以整合成一个单一的任务时,我们永远都不选择同时执行多任务! ”、“记住:
99%
的程序不要执行多任务!并且99.9% 多任务程序错误是因为错误的使用了多任务程序!!

多任务程序怎样设置优先级,如何调度,技巧性很强,直接写很容易冲突!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-7-29 11:09:22 | 显示全部楼层
冰之谷 发表于 2018-7-29 10:50
这是一个多任务程序,有时程序之间可能产生冲突,延时有时可以避免多任务程序之间的冲突,给程序转换留出足 ...

谢谢。我也觉得会有程序冲突,就是分析不出来哪里冲突
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-29 11:15:02 | 显示全部楼层
本帖最后由 冰之谷 于 2018-7-29 11:18 编辑
九尾金毛 发表于 2018-7-29 11:09
谢谢。我也觉得会有程序冲突,就是分析不出来哪里冲突

这还用分析吗?两个都是无限循环,同一个变量(电机功率)在这两个无限循环里赋值不同,条件也不同,当然会冲突!
不用中断来提高某个程序的优先级,即使加了延时一样也会冲突。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-29 11:55:53 | 显示全部楼层
马达冲突  都是同一个马达    很容易冲突的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-29 16:03:13 | 显示全部楼层
马达冲突,变量冲突,传感器个(颜色冲突)
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-29 16:57:40 | 显示全部楼层
分拣机的程序?!
这个多任务模式一般来说不推荐使用!可以用判断等解决!如果一定用,多任务一定要有优先级别,也就是先后或者等级和条件!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-31 10:23:59 | 显示全部楼层
冰之谷 发表于 2018-7-29 11:15
这还用分析吗?两个都是无限循环,同一个变量(电机功率)在这两个无限循环里赋值不同,条件也不同,当然 ...

楼主长,那如果再程序循环结束前增加一个电机角度重置模块,会有改变吗?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-31 13:02:19 | 显示全部楼层
本帖最后由 冰之谷 于 2018-7-31 13:20 编辑
maokmaok 发表于 2018-7-31 10:23
楼主长,那如果再程序循环结束前增加一个电机角度重置模块,会有改变吗?

我认为还是会,做一下实验看看,即使这样可以解决问题,也仍然极不建议使用多任务程序,不管是LEGO还是其他处理器,多任务程序即使在操作系统中也有严格的优先级关系或使用中断等方法进行控制,这种程序的冲突可能导致程序无法运行,甚至操作系统崩溃。







如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-31 13:24:44 | 显示全部楼层
循环有扫描周期,一秒钟可能扫描了几百次。就有几百次的可能性,加个延时,可以控制扫描周期在一定的时间扫描一次,
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-7-31 19:05:33 | 显示全部楼层
应该会有冲突的呀。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-8-1 15:40:28 | 显示全部楼层
首先是循环里没有“中断”作用的模块儿,都是直接取用传感器的数据,一瞬间就会循环很多次,可能就会出现马达不停的旋转,在一个就是两个同时进行的程序,控制的是一个马达,尤其是有两个马达停止,那么满足其中一个条件马达转动的时候,另一个条件很可能是不满足,那么马达到底是转还是不转,最终结果就是马达不转。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-5-1 05:19 , Processed in 0.283161 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表