单片机中断程序后,想要程序回到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;
} 展开
下面是程序
void main (void)
{
nomal:
while(1)
{
。。。。。。。。。。。。。
}
returnTurn:
while(1)
{
。。。。。。。。。。。。。
goto nomal;
}
void interrupt0(void) interrupt 0 //使用外部0中断
{
。。。。。。
goto returnTurn;
} 展开
3个回答
展开全部
不建议在中断里有多层调用关系和使用goto语句,如果必须这样的话,你可以这样写:
void returnTurn(void) //在这里告诉程序出错后如何运行
{
//................
}
void main (void)
{
while(1)
{
//..........................
}
void interrupt0(void) interrupt 0 //使用外部0中断
{
//.........................
returnTurn();
}
void returnTurn(void) //在这里告诉程序出错后如何运行
{
//................
}
void main (void)
{
while(1)
{
//..........................
}
void interrupt0(void) interrupt 0 //使用外部0中断
{
//.........................
returnTurn();
}
追问
那执行完Turn();之后程序会跳转到哪里?
追答
退出中断程序
参考资料: 我的大脑
展开全部
void interrupt0(void) interrupt 0 //使用外部0中断
{
//******************************
flag='a';
//*******************************
}
你可以吧你中断后腰执行的程序放进 中断程序里。。。。。
void main (void)
{
...............................
if(flag=='a')
{
flag='b';
//****YOUR CODE*****************************
//*******************************************
}
.....................................................................
}
}
{
//******************************
flag='a';
//*******************************
}
你可以吧你中断后腰执行的程序放进 中断程序里。。。。。
void main (void)
{
...............................
if(flag=='a')
{
flag='b';
//****YOUR CODE*****************************
//*******************************************
}
.....................................................................
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言不是汇编。中断执行完程序返回中断发生的位置继续执行。
你可以变通一种方法,比如中断处理上你加入一个变量,在主程序里判断这样就可以到你指定的位置了。
你可以变通一种方法,比如中断处理上你加入一个变量,在主程序里判断这样就可以到你指定的位置了。
追问
我也想过这样啊,可是中断返回后,可能还是会执行了一段语句后才去判断这个变量。这样程序就跑偏了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询