问一个逻辑

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条回答
MrXiong
1楼-- · 2019-08-18 15:53
 精彩回答 2  元偷偷看……
d1z1y2
2楼-- · 2019-08-18 21:18
switch(state)
{
case 0:
         delay(100);
        break;
case  1:
        xxxx();
        break;
}

void 中断(void)
{
state=1;
}
执迷
3楼-- · 2019-08-19 02:16
MrXiong 发表于 2017-6-10 14:07
中断的都是有优先级的,只要调好优先级就行了

没有,,就一个中断,,我的意思是第二次中断,,没说清楚
执迷
4楼-- · 2019-08-19 04:55
simms01 发表于 2017-6-10 13:51
任何中断服务函数里面  只置标志 不能做具体处理 要在大循环哪里判断标志   在中断服务函数放延时更是大忌

是的、、、遇到问题才知道、、
执迷
5楼-- · 2019-08-19 06:42
d1z1y2 发表于 2017-6-10 14:20
switch(state)
{
case 0:

不知道是你没懂我的意思还是我没懂你的意思
安尚科技
6楼-- · 2019-08-19 08:50
 精彩回答 2  元偷偷看……

一周热门 更多>