全局变量中断原子操作_51单片机解决中断和主程序共享全局变量的方法

本文介绍了51单片机如何处理中断和主程序访问全局变量时可能出现的冲突问题。通过原子操作的概念,讨论了在多进程系统中防止资源冲突的策略,如设置标志变量和利用DJNZ指令实现临界区保护。同时,提出了将这种方法转化为信号量的思路,对于没有原子操作指令的51单片机,提供了有效的解决方案。
摘要由CSDN通过智能技术生成

51

单片机解决中断和主程序共享全局变量的方法

所谓原子操作

,

并不是指一条指令

,

而是指一系列操作不能被打断

.

这种操作与临界区是密切相关的

,

可以说原子操作就是临界区引发出来的需求

.

以上是给大家提供资料查找的入口

,

下面我用通俗的话说说

,

但切不要认为自已看懂了就可以不

去查以上相关资料了

,

知道啥叫

"

通俗

"

?

呵呵

.

废话不多说

:

在多进程的系统里

(

比如多任务

,

比如中断服务程序

),

假如两组程序都要访问同一个资源

,

而作为

程序员的你没有办法避免在一个进程访问完该资源之前

,

另一进程就来访问该资源

,

就出现了访

问冲突

,

这就是临界区问题

.

举个实际例子

:

假如

A

进程用变量

a

作为临时存储区时

,

如果运行到一半中断发生了

,

而中断里也

会用到该变量

,

等中断返回时

,

变量

a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值