ee168 发表于 2022-9-4 11:56

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

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位字节,再读低字节,再读高字节,如果高字节没变,就可以返回之前的数据,否则重复此过程
页: [1]
查看完整版本: 8位单片机如何系统滴答?