技术论坛

如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如

将好帖分享好友
作者 主题
游士

经验值: 164
发帖数: 58
精华帖: 0
主题:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 楼主 2012-12-04 09:35:06
比如我现在有十个开关,编号从1-10,对应的优先级是1-10,就是说如果同时有几个开关闭合,那么先执行优先级高的开关对应的事件,执行完后再执行其他事件,

注: 优先级 高 低
1 2 3.。。。。。。10


求思路或者是程序也行!!
 
将好帖分享好友
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1038290&b_id=4&s_id=0&num=9

奇侠

经验值: 7950
发帖数: 2355
精华帖: 73
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 1楼 2012-12-04 11:28:15
程序本身就是从上往下执行的,1放在最前面判断······10放在最后面判断,当1的条件满足,执行1中的子程序······,依次类推。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
将好帖分享好友
以下网友喜欢您的帖子:

  
至圣

经验值: 36554
发帖数: 14118
精华帖: 54
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 2楼 2012-12-04 12:56:31
按照楼主的要求应该是这个事件不是在几个扫描周期内就能完成,所以你需要用到队列,每一个开关产生一个数值,输入到队列的最后,然后把队列数值按照从小到大排列,然后判断第一个数值是几则执行它对应的事件,执行结束后,队列中的数据整体前移,把新的数值插入到队列的后面再排序判断输出,如此循环。
活到老,学到老!为了生活学习吧!
将好帖分享好友
以下网友喜欢您的帖子:

  
侠圣

经验值: 2170
发帖数: 756
精华帖: 0
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 3楼 2012-12-04 13:20:09
就是一个排序的问题。不过有个问题,要是在运行级别低的来了级别高的,你该不是还要记录级别低的运行到哪,然后运行完级别高的再回来运行级别低的
 
将好帖分享好友
以下网友喜欢您的帖子:

  
奇侠

经验值: 5062
发帖数: 640
精华帖: 1
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 4楼 2012-12-04 13:34:52
我认为完全就是一个抢答器一样的,谁先按下谁动作,而这个是将优先级高的放在前面或者后面,如置位优先或者复位优先这样的原理一样。
 
将好帖分享好友
以下网友喜欢您的帖子:

  
侠圣

经验值: 2910
发帖数: 712
精华帖: 26
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 5楼 2012-12-04 14:06:09
用堆栈出栈做吧!你的要求应该是一个典型的进栈然后排队,按照优先级再出栈!
我是新手我怕谁!
将好帖分享好友
以下网友喜欢您的帖子:

  
至圣

经验值: 19944
发帖数: 8944
精华帖: 39
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 6楼 2012-12-04 22:51:49
按优先级从高到低写程序。
如果条件满足,执行相应程序,完成后跳转到该大段程序最后
如果不满足,再判断下一个,如此重复。

或者,将满足条件的事件放入一个队列,然后按优先级高低排序,然后执行队列首位的事件。
 
将好帖分享好友
以下网友喜欢您的帖子:

  
游士

经验值: 164
发帖数: 58
精华帖: 0
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 楼主 7楼 2012-12-05 11:08:23
昨天比较忙,没有来论坛看,自己最后用的一种方法,,刚才看了下和2 楼及六楼的想法差不多吧。。就是优先级最高的放在前面,并且优先级低的程序中加上优先级高的常闭,相当于互锁吧,然后程序要求是如果执行了某一个程序,则必须执行完该程序之后再判断优先级,然后按优先级高低执行程序,说的麻烦了点,呵呵,,现在的要求应该是能实现了,不过还没有调试呢。。

BTW::中间几楼说的用队列,堆栈,以及排序还不是很了解,目前也没有碰到过这种程序,,入行不久,继续学习,呵呵,,,怎么老是感觉我写程序一直是按自己的思维习惯吧,老是想顺序把要实现的功能依次写出来,最后才发现程序写的比较麻烦。。
 
将好帖分享好友
以下网友喜欢您的帖子:

  
游士

经验值: 164
发帖数: 58
精华帖: 0
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 楼主 8楼 2012-12-05 11:12:18
quote:以下是引用zhangli0在2012-12-04 12:56:31的发言:
按照楼主的要求应该是这个事件不是在几个扫描周期内就能完成,所以你需要用到队列,每一个开关产生一个数值,输入到队列的最后,然后把队列数值按照从小到大排列,然后判断第一个数值是几则执行它对应的事件,执行结束后,队列中的数据整体前移,把新的数值插入到队列的后面再排序判断输出,如此循环。



确实是不是几个扫描周期能完成的,每个事件估计得一到两分钟的样子。顺便,你那里有没有现成的这种程序(就是队列相关的),能不能给我贴一个,好让我也学习下着中方法,项目中的程序我是用了2楼类似的想法实现的
 
将好帖分享好友
以下网友喜欢您的帖子:

  
游士

经验值: 164
发帖数: 58
精华帖: 0
回复:如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如


只看楼主 楼主 9楼 2012-12-05 11:14:33
quote:以下是引用n次看你的背影在2012-12-04 11:28:15的发言:
程序本身就是从上往下执行的,1放在最前面判断······10放在最后面判断,当1的条件满足,执行1中的子程序······,依次类推。

嘿嘿,谢谢N侠,,最后的思路也是这个
 
将好帖分享好友
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
如何在300 cpu 中自己编写一个具有优先选择权的程序。。比如
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。