单片机中断程序后,想要程序回到main的某个位置,可以吗?就是main中的returnTurn标签处

我试过用goto可是报错returnTurnunreferencedlabel和returnTurnundefinedlabel下面是程序voidmain(void){n... 我试过用goto可是报错returnTurn unreferenced label和returnTurn undefined label
下面是程序
void main (void)
{
nomal:
while(1)
{
。。。。。。。。。。。。。
}
returnTurn:
while(1)
{
。。。。。。。。。。。。。
goto nomal;
}

void interrupt0(void) interrupt 0 //使用外部0中断
{
。。。。。。
goto returnTurn;
}
展开
 我来答
waitxhurt
2011-03-12 · TA获得超过581个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:127万
展开全部
不建议在中断里有多层调用关系和使用goto语句,如果必须这样的话,你可以这样写:
void returnTurn(void) //在这里告诉程序出错后如何运行
{
//................
}
void main (void)
{
while(1)
{
//..........................
}

void interrupt0(void) interrupt 0 //使用外部0中断
{
//.........................
returnTurn();
}
追问
那执行完Turn();之后程序会跳转到哪里?
追答
退出中断程序

参考资料: 我的大脑

magicko
2011-03-12
知道答主
回答量:27
采纳率:0%
帮助的人:5.2万
展开全部
void interrupt0(void) interrupt 0 //使用外部0中断
{

//******************************
flag='a';
//*******************************

}
你可以吧你中断后腰执行的程序放进 中断程序里。。。。。
void main (void)
{
...............................
if(flag=='a')
{
flag='b';

//****YOUR CODE*****************************

//*******************************************

}
.....................................................................
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿里Q1718
2011-03-12 · TA获得超过491个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:251万
展开全部
C语言不是汇编。中断执行完程序返回中断发生的位置继续执行。
你可以变通一种方法,比如中断处理上你加入一个变量,在主程序里判断这样就可以到你指定的位置了。
追问
我也想过这样啊,可是中断返回后,可能还是会执行了一段语句后才去判断这个变量。这样程序就跑偏了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式