打印
[MCU]

8位单片机如何系统滴答?

[复制链接]
1045|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ee168|  楼主 | 2022-9-4 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
32位单片机弄个系统滴答不用担心中断产生的影响,读写过程中,中断对读值不会有影响。

但是8位单片机,用个32bit的滴答,有没有可能这种情况:

我读了4个字节中一半时,滴答的中断来了,把4个字节的值修改了,中断退出后,我读的值已经不对了

当然读之前关中断也可以,读完后再开中断。我只想会不会有上述情况

使用特权

评论回复

相关帖子

沙发
LcwSwust| | 2022-9-4 12:06 | 只看该作者
本帖最后由 LcwSwust 于 2022-9-4 12:10 编辑

8位单片机读取16位或32位数据时,如果被中断打断并修改变量,那么读出来的值的确会不对,得到的值可能即不是中断前的值也不是中断后的值,可能高字节是中断前的值,低字节是中断后的值。
应关中断再读取,短时间关中断并不会影响定时中断频率。

使用特权

评论回复
板凳
ayb_ice| | 2022-9-8 16:19 | 只看该作者
飞读是可以的,先读高3位字节,再读低字节,再读高字节,如果高字节没变,就可以返回之前的数据,否则重复此过程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

114

主题

200

帖子

2

粉丝