找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2421|回復(fù): 10
收起左側(cè)

單片機(jī)寫(xiě)EEPROM需要關(guān)閉中斷嗎?

[復(fù)制鏈接]
ID:997026 發(fā)表于 2023-7-23 11:01 | 顯示全部樓層 |閱讀模式
各位好,

現(xiàn)在用一款國(guó)產(chǎn)32bit M0核MCU,外部外掛了一顆EEPROM,AT24C04,IO口模擬I2C接口通信,每寫(xiě)一次數(shù)據(jù)都會(huì)保存到EEPROM,寫(xiě)入和保存數(shù)據(jù)都使用了均衡算法。

我的問(wèn)題是,寫(xiě)入數(shù)據(jù)時(shí),需要關(guān)閉中斷嗎?我的程序中開(kāi)啟了1ms定時(shí)器中斷,聽(tīng)說(shuō)當(dāng)寫(xiě)入數(shù)據(jù)時(shí),如果被中斷打斷,將導(dǎo)致數(shù)據(jù)丟失。
現(xiàn)在我是沒(méi)管它,沒(méi)關(guān)中斷,就直接寫(xiě)的,測(cè)試了幾個(gè)月,沒(méi)有發(fā)現(xiàn)一次數(shù)據(jù)寫(xiě)入有問(wèn)題的,所以現(xiàn)在我也搞不懂到底要不要關(guān)閉中斷。
如果關(guān)閉中斷,會(huì)不會(huì)導(dǎo)致另一個(gè)問(wèn)題,因?yàn)槲业陌存I都是放在中斷掃描的,關(guān)掉后會(huì)不會(huì)導(dǎo)致按鍵又出問(wèn)題了。

求教有這方面經(jīng)驗(yàn)的大神指教。

謝謝

回復(fù)

使用道具 舉報(bào)

ID:404160 發(fā)表于 2023-7-23 13:01 | 顯示全部樓層
1.中斷處理時(shí)間很短。2.軟件I2C速率不高(慢速)。就不需要關(guān)中。當(dāng)然,中斷產(chǎn)生后,對(duì)要處理的事件做標(biāo)志,然后,在中斷外,處理事件,就不會(huì)有問(wèn)題

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-7-23 15:46 | 顯示全部樓層
EEPROM寫(xiě)一次要10ms,跟中斷有什么關(guān)系?除非你的中斷處理程序運(yùn)行時(shí)間超過(guò)10ms。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2023-7-23 15:49 | 顯示全部樓層
如果你是用匯編,那就要關(guān)閉中斷,因?yàn)閰R編的中斷現(xiàn)場(chǎng)處理是要人為去寫(xiě)的
如果你用的是C語(yǔ)言,不需要關(guān)閉中斷,C語(yǔ)言的中斷的現(xiàn)場(chǎng)處理是編譯器自動(dòng)寫(xiě)的
回復(fù)

使用道具 舉報(bào)

ID:1085441 發(fā)表于 2023-7-23 17:07 | 顯示全部樓層
飛云居士 發(fā)表于 2023-7-23 13:01
1.中斷處理時(shí)間很短。2.軟件I2C速率不高(慢速)。就不需要關(guān)中。當(dāng)然,中斷產(chǎn)生后,對(duì)要處理的事件做標(biāo)志 ...

是的,不需要關(guān)中斷,我用的I2C器件就沒(méi)有關(guān)中斷
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2023-7-23 18:10 | 顯示全部樓層
不需要關(guān)閉,寫(xiě)進(jìn)去再讀出來(lái),失敗重復(fù)5次。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-7-23 18:18 | 顯示全部樓層
npn 發(fā)表于 2023-7-23 18:10
不需要關(guān)閉,寫(xiě)進(jìn)去再讀出來(lái),失敗重復(fù)5次。

eeprom只能把1寫(xiě)成0,想要把0寫(xiě)成1需要先擦除,那么問(wèn)題來(lái)了,如何判斷寫(xiě)錯(cuò)了的字節(jié)可不可以再寫(xiě)進(jìn)去?算法?
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2023-7-23 18:27 | 顯示全部樓層
Hephaestus 發(fā)表于 2023-7-23 18:18
eeprom只能把1寫(xiě)成0,想要把0寫(xiě)成1需要先擦除,那么問(wèn)題來(lái)了,如何判斷寫(xiě)錯(cuò)了的字節(jié)可不可以再寫(xiě)進(jìn)去?算 ...

AT24C系列EEPROM沒(méi)有扇區(qū)的說(shuō)法,不需要擦除,直接寫(xiě)就可以了。
回復(fù)

使用道具 舉報(bào)

ID:612392 發(fā)表于 2023-7-24 08:11 | 顯示全部樓層
Hephaestus 發(fā)表于 2023-7-23 18:18
eeprom只能把1寫(xiě)成0,想要把0寫(xiě)成1需要先擦除,那么問(wèn)題來(lái)了,如何判斷寫(xiě)錯(cuò)了的字節(jié)可不可以再寫(xiě)進(jìn)去?算 ...

只有STC的偽EEPROM,才要這樣操作。正經(jīng)的EEPROM都是可以0寫(xiě)1的
回復(fù)

使用道具 舉報(bào)

ID:320306 發(fā)表于 2023-7-24 09:26 | 顯示全部樓層
不需要關(guān)中斷,IIC速率不高!
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-7-24 10:04 | 顯示全部樓層
不需要關(guān)中斷,但是每次寫(xiě)之后,寫(xiě)入時(shí)間要5ms以上,這段時(shí)間不能訪問(wèn)EEPROM。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表