如何跳出函数

2019-07-20 13:40发布

void main(void){
    whlie(1)
    {
        A:......
        B:......
        C:......
        D:......
        E:......
        F:......
    }
}
void TIM2_IRQHandler(void)
{
    if(a==1)......
}

主函数在不停的循环ABCDEF五步,如何能使到达TIM2并满足条件判断后,使主函数不管进行到哪一步,一律跳转到步骤C呢?
(我是用在机器的紧急停止按钮上的,检测到按钮按下了,不管在进行什么程序,一律停止并跳转到主程序的某一步)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
Pro_Xiao
1楼-- · 2019-07-21 11:55
本帖最后由 Pro_Xiao 于 2017-6-30 09:38 编辑

你把C函数代码直接复制到中断里,按了按钮进中断执行C,中断优先级不要设置最高,额外设置个更高优先级的中断用于跳出这个包含C的中断,包含C的中断接收到这个更高优先级的中断后跳出,继续回到main中从按下按钮的时刻运行ABCDEFG
djyos
2楼-- · 2019-07-21 15:10
 精彩回答 2  元偷偷看……
李卓晖
3楼-- · 2019-07-21 18:30
在TIM2里面写一个goto,让它直接跳过去,这样行得通吗?
chb0613
4楼-- · 2019-07-21 20:46
在中断里修改 TaskState = C
dipolo
5楼-- · 2019-07-21 23:22
 精彩回答 2  元偷偷看……
dipolo
6楼-- · 2019-07-22 00:00
djyos 发表于 2017-6-30 09:43
裸跑环境还是有操作系统的环境?

裸跑的

一周热门 更多>