找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關(guān)于AT24C256如何獲取內(nèi)部寄存器地址

[復(fù)制鏈接]
ID:196745 發(fā)表于 2020-4-15 21:16 | 顯示全部樓層 |閱讀模式
如圖片中寫到,我的理解是通過這個(gè)方式獲取的寄存器地址值只能是存儲數(shù)據(jù)一次次累加,最后的數(shù)據(jù)地址。例如:本來空的,“棧指針”指向0x0000,我存入了一些數(shù)據(jù),這時(shí)候指向了0xffaa,那么通過寄存器地址讀取,讀到的只能是這個(gè)地址往前的8bit數(shù)據(jù)。

怎么樣才能讀取其中任意一段數(shù)據(jù)?我的確可以在寫的時(shí)候記住地址,下次直接讀取這個(gè)地址的值,但是這樣還要在下次我存數(shù)據(jù)讀取上次數(shù)據(jù)的地址,然后接著這個(gè)地址寫?



寄存器地址讀取描述.png

AT24C256_I2C.pdf

410.66 KB, 下載次數(shù): 28

數(shù)據(jù)手冊供參考

回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2020-4-16 08:25 | 顯示全部樓層
"獲取內(nèi)部寄存器地址"
這話什么意思?
AT24C256不管是讀還是寫,都是先寫入一個(gè)地址,然后再決定讀取還是寫入,而這個(gè)地址是由自己定的,用得著獲取什么嗎?
回復(fù)

使用道具 舉報(bào)

ID:452950 發(fā)表于 2020-4-16 10:27 | 顯示全部樓層
想存哪里就存哪里呀,AT24CXX不會給你自動分配地址的,讀寫都要自己指定1個(gè)地址,,AT24C256地址范圍為0X0000~0X7FFF,每個(gè)地址可存1字節(jié)數(shù)據(jù)。
如果存在之前寫過數(shù)據(jù)的地址,就會覆蓋先前的數(shù)據(jù)。如果讀之前沒存過數(shù)據(jù)的地址,就會讀出0XFF。
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-16 10:59 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-4-16 08:25
"獲取內(nèi)部寄存器地址"
這話什么意思?
AT24C256不管是讀還是寫,都是先寫入一個(gè)地址,然后再決定讀取還是寫 ...

獲取的是最后數(shù)據(jù)存入的地址,自己決定是覆蓋之前的數(shù)據(jù)還是往后存儲。
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-16 11:00 | 顯示全部樓層
xxpp2011 發(fā)表于 2020-4-16 10:27
想存哪里就存哪里呀,AT24CXX不會給你自動分配地址的,讀寫都要自己指定1個(gè)地址,,AT24C256地址范圍為0X00 ...

好的
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2020-4-16 14:16 | 顯示全部樓層
"獲取的是最后數(shù)據(jù)存入的地址"
依然不知道你在說什么,這最后的地址不也是你自己指定的嗎?用得著去"獲取"嗎?
不管你是連續(xù)寫入多個(gè)地址還是單獨(dú)寫入一個(gè)地址,這最后的地址必然是你自己所指定的地址,肯定是達(dá)到了某個(gè)條件就停止寫入了,那么,這個(gè)所謂你地址不就是你指定的嗎?
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-16 20:09 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-4-16 14:16
"獲取的是最后數(shù)據(jù)存入的地址"
依然不知道你在說什么,這最后的地址不也是你自己指定的嗎?用得著去"獲取"嗎 ...

假如這塊EEPROM曾經(jīng)被你的同事寫過重要數(shù)據(jù),接受項(xiàng)目后你需要接著寫數(shù)據(jù)。為了不覆蓋之前的數(shù)據(jù),你是讓你的同事用腦子回憶起當(dāng)時(shí)哪個(gè)地址區(qū)間有數(shù)據(jù),還是通過CURRENT ADDRESS READ獲取the last address accessed during the last read or write operation?
最后的地址當(dāng)然是我指定的,理論上我可以指定地址區(qū)間內(nèi)的任何地址。
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-16 20:23 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-4-16 14:16
"獲取的是最后數(shù)據(jù)存入的地址"
依然不知道你在說什么,這最后的地址不也是你自己指定的嗎?用得著去"獲取"嗎 ...

你說的有道理,數(shù)據(jù)寫到哪里都是程序員控制的。但是CURRENT ADDRESS READ的意義在哪呢?
回復(fù)

使用道具 舉報(bào)

ID:452950 發(fā)表于 2020-4-16 22:53 | 顯示全部樓層
zhj1314 發(fā)表于 2020-4-16 20:23
你說的有道理,數(shù)據(jù)寫到哪里都是程序員控制的。但是CURRENT ADDRESS READ的意義在哪呢?

我用AT24C256做考勤記錄存儲時(shí)是用兩個(gè)字節(jié)存地址標(biāo)志的,比方說考勤記錄從0X0000開始存,每條記錄10字節(jié),存完一條就將地址標(biāo)志加10,放進(jìn)存標(biāo)志的地址,這樣就可以掉電保存當(dāng)前存儲位置了,還可以由此計(jì)算出每條記錄的每個(gè)字節(jié)存在哪個(gè)地址。上電后先從標(biāo)志地址讀出標(biāo)志值,從該位置開始繼續(xù)存考勤記錄,避免覆蓋先前的記錄。
沒有了解過CURRENT ADDRESS READ這個(gè)功能,不過如果有的話差不多也是這樣用的吧。
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-17 09:04 來自手機(jī) | 顯示全部樓層
xxpp2011 發(fā)表于 2020-4-16 22:53
我用AT24C256做考勤記錄存儲時(shí)是用兩個(gè)字節(jié)存地址標(biāo)志的,比方說考勤記錄從0X0000開始存,每條記錄10字節(jié) ...

謝謝。懂了。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2020-4-17 11:44 | 顯示全部樓層
zhj1314 發(fā)表于 2020-4-16 20:23
你說的有道理,數(shù)據(jù)寫到哪里都是程序員控制的。但是CURRENT ADDRESS READ的意義在哪呢?

這個(gè)功能是在不斷電的情況下,你可以不用通過地址就可以直接知道上一次讀寫的最后一個(gè)地址,這功能就和你理解的是一樣的
但在實(shí)際中,基本就不用看這個(gè)功能
你接手一個(gè)項(xiàng)目,這24C256還得保持電源,如果斷電了,這記錄應(yīng)該就是沒有了吧,
英文不行,看不明白它是只保存讀取還是寫入
如果讀取也會保存的話,你就有可能不知道上一次寫入的地址是哪個(gè)了
9#已經(jīng)給出了正確的用法,特別是在要累加記錄又要保存之前記錄,而且,設(shè)備會經(jīng)常斷電的情況的,地址的記錄最好就是另外放一個(gè)地址在保存
回復(fù)

使用道具 舉報(bào)

ID:196745 發(fā)表于 2020-4-17 15:04 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-4-17 11:44
這個(gè)功能是在不斷電的情況下,你可以不用通過地址就可以直接知道上一次讀寫的最后一個(gè)地址,這功能就和你理 ...

是的,我也是后來才注意到。他讀回的是上次操作的地址,包括讀和寫。這樣的話意義不大了。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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