void main(void){
whlie(1)
{
A:......
B:......
C:......
D:......
E:......
F:......
}
}
void TIM2_IRQHandler(void)
{
if(a==1)......
}
主函数在不停的循环ABCDEF五步,如何能使到达TIM2并满足条件判断后,使主函数不管进行到哪一步,一律跳转到步骤C呢?
(我是用在机器的紧急停止按钮上的,检测到按钮按下了,不管在进行什么程序,一律停止并跳转到主程序的某一步)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
enum{
TASK_A,
TASK_B,
TASK_C,
TASK_D,
TASK_E,
TASK_F,
};
volatile unsigned char TaskState;
void main(void){
TaskState = A;
whlie(1)
{
switch(TaskState)
{
case A:
break;
case B:
break;
case C:
break;
case D:
break;
case E:
break;
case F:
break;
}
}
void TIM2_IRQHandler(void)
{
if(a==1)
{
TaskState = C;
}
}
现在需要实际程序不能复位,复位后代价太大了,计算好久的程序好多变量都要重头来了(把变量周期性的存储起来也不适合我这实际),没有其他办法吗大哥?
不知道setjmp()和longjmp()能不能用得上,我试下
一周热门 更多>