问一个逻辑

2019-08-17 08:30发布

执行状态0;满足条件状态置1,等待100ms,如果没有中断发生状态置0,有中断就执行状态1,,,,现在这个状态机在中断里面,所以延时不能放中断里面,有没有什么好办法
大概是这样
switch(state)
{
case 0:
         state=1;
         delay(100);
        state=0;
        break;
case  1:
        xxxx();
        break;
}   
     
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
30条回答
来俩不甜的
1楼-- · 2019-08-20 17:13
执迷 发表于 2017-6-12 08:27
一般两个设备通讯不都要先握手吗

不啊,除了tcp建立链接需要握手,我见过的串口通讯从来都不需要握手。当然串口协议我只用过modbus,别的没见过。。
执迷
2楼-- · 2019-08-20 21:29
来俩不甜的 发表于 2017-6-12 08:48
不啊,除了tcp建立链接需要握手,我见过的串口通讯从来都不需要握手。当然串口协议我只用过modbus,别的 ...

额、、、这个协议不是自己定的嘛、、、不要当然也可以、
来俩不甜的
3楼-- · 2019-08-21 01:44
 精彩回答 2  元偷偷看……
执迷
4楼-- · 2019-08-21 05:03
来俩不甜的 发表于 2017-6-12 10:06
关键是你用的什么通讯方式,串口完全不需要握手。tcp也只是在建立链接的时候 握手

串口通讯啊,,是可以不要的、、问题是我得根据协议写啊,,协议怎么定,就要怎么写、、、、、、不然到时候怎么和上位机通讯,,,上位机也是用的这份协议啊、、、
来俩不甜的
5楼-- · 2019-08-21 08:26
执迷 发表于 2017-6-12 10:22
串口通讯啊,,是可以不要的、、问题是我得根据协议写啊,,协议怎么定,就要怎么写、、、、、、不然到时 ...

只能开定时器中断,state=1,开始计时,超时在定时器中断里设置state=0
执迷
6楼-- · 2019-08-21 13:14
来俩不甜的 发表于 2017-6-12 12:37
只能开定时器中断,state=1,开始计时,超时在定时器中断里设置state=0

是的、、这样感觉要专门看个定时器挺浪费的

一周热门 更多>