帮忙给个思路,多路定时工作相关的,不太好描述,请进...

2020-01-01 17:53发布

接了一个一顿饭价钱的活,档次就是不带星的饭店10个菜的那种,还不能算酒水
正题

上位机软件   开关80,通过串口控制下位机,下位机有595控制的80个继电器

软件功能       80个开关  一个总按钮  和一个输入延时的框  1-100S         
软件工作       按了几号按钮   对应下位机的继电器就吸合工作几秒,

刚如认为很简单,后来发现也挺难的,
就是  有交叉工作的地方,还有逻辑的地方

比如说软件设置延时5秒   (多路工作时,比如开关4和8打开,一按按钮就串口发送了,下位机4和8就继电器工作了)   
情况1        4号继电器工作了3S的时候,4号又来信号了,就在按5S算
情况2        4号继电器和8号继电器工作到3秒时   4路信号又来了   那这样4号就是5秒延时了,但8号在有2秒就释放了

这地方,想不能了,开始以为哪个工作,哪个延时就完事了。。。大家帮个忙,给个思路就好
谢谢大家,

         
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
jbpan852
1楼-- · 2020-01-02 14:18
jiege0119 发表于 2016-7-26 08:29
根据你的延时精度计算,如果是10MS,那你就使用一个定时器定时10MS中断,然后80个开关,就定义80个变量就行 ...

赞同,这个方法比较容易实现
往事如蔓我如篱
2楼-- · 2020-01-02 19:12
6楼正解,这也是我在用的方案
lsx007
3楼-- · 2020-01-02 19:52
里面有2个文件:Async.c 和 Async.h
功能:实现异步延时,看起来很适合楼主
snail_dongbin
4楼-- · 2020-01-03 00:26
这个就是类似plc 的定时器,当然单片机不可能有那么多定时器 所以你就模拟 80个 每个都是按步进计时的方式
互不影响。
lj123456
5楼-- · 2020-01-03 05:08
 精彩回答 2  元偷偷看……
dykwai1
6楼-- · 2020-01-03 08:28
每个继电器一个倒计时器,有新的数据下来就刷新对应的倒计时器

一周热门 更多>