51单片机进行整数运算的时候如果发生中断会怎样?
51单片机处理16位或32位整数,即使是简单的赋值,也需要拆成多个指令的。假如正在执行赋值操作进行到一半的时候,发生了中断,而中断里又会用到这个整形变量,在中断里读到的值是否就是一个中间状态?对这种情况要不要做防范?
51单片机进行整数运算的时候如果发生中断会怎样?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答
番杰 2022-06-08 15:40关注应该不会读到中间过程值;
打给比方:
a = b + c;
此时程序正在计算b+c,还未完成,进入中断里,使用的a还是之前的a的数值;
不会是b+c的数值还没有赋值给a;提示:如果要避免你担心的情况,
可以在程序这样写:计算前关闭中断,计算后再打开中断;
像这样:
// 禁止中断的代码;
a = b + c;
// 允许中断的代码;解决 无用评论 打赏 举报