|
函数被连续嵌套调用了。 |
wssbwssb 发表于 2021-11-23 21:49 错误做法:中断调用A,A里面调用B,主函数调用B。 正确做法:主函数调用B,中断函数里面打标志Flag=1,主函数里面Flag = 1,就调用函数B同时Flag =0 第一个做法之所以错误,就是如果主函数调用了函数A,中断通过B函数调用A,那么中断调用会改变A函数的状态。 打个比B函数是你进入房间->开水龙头->洗手->关水龙头->用纸巾擦手->拿起手机->开门->离开 如果你用主函数走到 ”开水龙” 这一步然后被中断打断了。 中断进来 “关水龙头” 、 “拿走手机”然后离开 主函数回到 “开水龙头”这一步但是水龙头在中断那里已经被关了(寄存器被改变了),你还能洗手吗?手机也被拿走了(全局变量改变了)你还能拿走手机吗? |
wssbwssb 发表于 2021-11-23 21:49 最好是更改逻辑,只在一个地方调用, 实在必须都要调用的话…… 再做一个内容完全一样,但是名字不同的函数,分别给中断和主程序调用。 |
188610329 发表于 2021-11-23 21:42 能说一下怎么解决吗?提供一下大至方向,谢谢 |
|
重复调用, 原则上,中断和主程序是不能调用同一个函数的。 |
| 用屏幕截图比这清晰多了 |