如何不停的调用延时子程序,又不至于造成单片机工作过程中的混乱?

具体情况是这样的,我要实现零件不间断的检测,有位置固定的摄像头采集图像,交给电脑处理,电脑判断是良品、次品,并通知单片机,良品在皮带上传送到良品箱位置时由一个推料器将其推... 具体情况是这样的,我要实现零件不间断的检测,有位置固定的摄像头采集图像,交给电脑处理,电脑判断是良品、次品,并通知单片机,良品在皮带上传送到良品箱位置时由一个推料器将其推入箱中;同样,检测为次品时,由另一个推料器将次品推入另一次品推料箱。这里存在一个零件的延时还没结束,另一个零件的延时又开始的问题,重复调用会造成程序运行混乱啊
tarzanfun猜的对,我就是这个意思啊,最好是能有人帮我给出这个程序!
展开
 我来答
zhxiufan
推荐于2017-10-23 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部
程序不会混乱的,51单片机是单任务系统,在执行一个程序时,除非中断,否则,不会去执行另外一段程序。
dieywqwczg
2011-08-22 · TA获得超过490个赞
知道小有建树答主
回答量:645
采纳率:0%
帮助的人:443万
展开全部
单片机本来就可以用C 编程的,当然可以
很简单一个比如
delay(int y)
{
for(int x=0;x<y;x++)
for(int y=0;y<110;y++)
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beijiquan001
2011-08-22
知道答主
回答量:43
采纳率:0%
帮助的人:33万
展开全部
设个标志位,延时开始的时候置位,延时结束清零,标志位置位期间不开始新的延时。
没说清楚延时子程序是做什么用的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tarzanfun
2011-08-22 · TA获得超过587个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:76.3万
展开全部
对不起,“这里存在一个零件的延时还没结束,另一个零件的延时又开始的问题,”这句话不太容易理解,你能说的再详细一点吗?
更多追问追答
追问
比如说第一个零件过来了,然后开始调用延时子程序,但是在延时还没有完的时候又过来一个零件,这时候又要延时了,但是刚才的调用尚未结束,会造成从头又开始延时了,我要的是良品的延时时间是2.5 S,次品的是2.52 S。
追答
你说的是单片机的程序还是上位机的程序?你反过来看一下你的说明,真的是让人一头雾水啊,能再表达的好一点么?你用的是什么样的延时,定时器延时还是普通的循环数延时?零件过来了是怎么通知的单片机,中断还是循环检测还是说完全不检测凭感觉?皮带是不是匀速运行不受控制?都要我自己猜么?

闲着无聊我就先猜一下,是不是这样:每个产品通过检测摄像头的时候为时间0,2.5s后该产品到达良品推料器,2.52s后到达次品推料器,因此对一个产品检测后要,单片机要隔至少2.5秒的时间做出对这个产品的操作,但是此时可能已经接收到了10个(打个比方)产品的检测结果,这就是你的问题所在。

是这个意思么?确认后我再告诉你我的想法。还有几个问题,请问两个推料器是一个单片机控制的还是两个单片机分别控制的?零件之间的间隔不是不是固定的?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ATF144X
2011-08-22 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4641万
展开全部
那就用定时器了,让定时器每隔固定的时间发生一次中断,在中断中处理事情,这样简单吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式