標(biāo)題: 單片機(jī)內(nèi)存和EEPROM問題 [打印本頁(yè)]

作者: 李冬    時(shí)間: 2023-11-16 11:56
標(biāo)題: 單片機(jī)內(nèi)存和EEPROM問題
STC單片機(jī)做學(xué)習(xí)型紅外遙控,單片機(jī)內(nèi)存4K。20個(gè)按鍵。每個(gè)鍵值236個(gè)字節(jié)。保存到單片機(jī)內(nèi)部EEPROM。
程序設(shè)計(jì),上電先把所有鍵值讀到內(nèi)存里,內(nèi)存不夠,就算內(nèi)存夠的話,也不能保證程序運(yùn)行時(shí),內(nèi)存數(shù)據(jù)的正確性。
只定義一個(gè)按鍵緩存,每次按鍵按下,就把對(duì)應(yīng)的鍵值從EEPROM讀到按鍵緩存里,這樣的話會(huì)不會(huì)減少EEPROM的壽命。

作者: 范莉萍    時(shí)間: 2023-11-16 13:44
讀取不會(huì),頻發(fā)擦除會(huì)
作者: lkc8210    時(shí)間: 2023-11-16 14:05
一個(gè)鍵值為啥會(huì)有236個(gè)字節(jié)?
作者: hi等你    時(shí)間: 2023-11-16 14:28
一個(gè)鍵值居然用了236個(gè)字節(jié),一看是原來是想用只用一個(gè)P30引腳RX,可以下載程序的

奇思妙想的樓主,我覺得樓主遇到的不是eeprom壽命問題,編程需要天賦,需要嚴(yán)謹(jǐn)?shù)?br />
邏輯能力,如果樓主從事此職業(yè),還是改行比較好,如果樓主是編程興趣愛好,還是走藝術(shù)

路線吧
作者: npn    時(shí)間: 2023-11-16 14:38
EEPROM里的數(shù)據(jù)不用讀到緩存里,可以用unsigned char code 指針或匯編MOVC指令訪問。
作者: yzwzfyz    時(shí)間: 2023-11-16 14:44
如果一個(gè)鍵值必需是236個(gè)字節(jié)的話,可以對(duì)20個(gè)鍵值研究一下,找找共同點(diǎn),構(gòu)思出一個(gè)壓縮方案,壓縮后使用。
作者: 李冬    時(shí)間: 2023-11-17 08:48
hi等你 發(fā)表于 2023-11-16 14:28
一個(gè)鍵值居然用了236個(gè)字節(jié),一看是原來是想用只用一個(gè)P30引腳RX,可以下載程序的

奇思妙想的樓主,我覺 ...

紅外模塊協(xié)議規(guī)定的

51hei圖片_20231117084704.png (427.64 KB, 下載次數(shù): 36)

51hei圖片_20231117084704.png

作者: IdeaMing    時(shí)間: 2023-11-17 11:28
首先,先搞清楚236字節(jié)數(shù)據(jù)真的都有效嗎?
其次,從EEPROM讀數(shù)據(jù)不減少EEPROM壽命,而且速度也夠快。
作者: hi等你    時(shí)間: 2023-11-17 15:19
李冬 發(fā)表于 2023-11-17 08:48
紅外模塊協(xié)議規(guī)定的

學(xué)習(xí)模塊畢竟是學(xué)習(xí)用的,我也不知道您的解碼數(shù)據(jù)怎么需要上百個(gè)字節(jié)來判斷鍵值,

我也看過您歷來的提問,很多都是作為思維嚴(yán)謹(jǐn)?shù)某绦蛟巢辉搯柕?+1的較真提問,你

真的需要用上千k的容量來?yè)]霍簡(jiǎn)簡(jiǎn)單單的紅外數(shù)據(jù),得多大的單片機(jī)來滿足這些垃圾

數(shù)據(jù)?做這樣的產(chǎn)品你的老板會(huì)被你氣死,上分析儀多看看紅外時(shí)序,判斷一下哪些是有效

數(shù)據(jù),哪些是無效丟棄的。1個(gè)字節(jié)有二百多個(gè)變化值,有幾個(gè)字節(jié)判斷頂天了,實(shí)在不

濟(jì)就改行吧,樓主真的不適合這行
作者: 188610329    時(shí)間: 2023-11-17 16:46
1,STC系列,讀Eeprom 是不影響壽命的。
2,既然你需要寫 236 x 20 字節(jié)到 Eeprom 說明你單片機(jī)的 Eeprom容量需要 5K 以上的,應(yīng)該也不會(huì)是太老的單片機(jī),但凡你用 STC15系(204s,408s等老型號(hào)除外)及以上型號(hào)單片機(jī),有什么必要從 Eeproim 里面先讀出來呢?直接從Eeprom讀,又不會(huì)比XDATA慢……
作者: zhuls    時(shí)間: 2023-11-17 20:39
如果我沒猜錯(cuò)的話,樓主是用直接錄取電平的方式來存鍵值的。不用解協(xié)議的,直接按1010的方式,所以才需要200+字節(jié)。比如NEC協(xié)議有個(gè)前導(dǎo)碼9ms,就存成100000000000....這樣的格式
作者: npn    時(shí)間: 2023-11-17 21:21
hi等你 發(fā)表于 2023-11-17 15:19
學(xué)習(xí)模塊畢竟是學(xué)習(xí)用的,我也不知道您的解碼數(shù)據(jù)怎么需要上百個(gè)字節(jié)來判斷鍵值,

我也看過您歷來的提 ...

此遙控器的原理相當(dāng)于錄音機(jī),將未知編碼的遙控信號(hào)時(shí)序波形記錄下(比如空調(diào)遙控),再將采樣的信號(hào)發(fā)射出去。
作者: 李冬    時(shí)間: 2023-11-18 08:34
hi等你 發(fā)表于 2023-11-17 15:19
學(xué)習(xí)模塊畢竟是學(xué)習(xí)用的,我也不知道您的解碼數(shù)據(jù)怎么需要上百個(gè)字節(jié)來判斷鍵值,

我也看過您歷來的提 ...

每個(gè)鍵值的紅外數(shù)據(jù)除了開頭兩個(gè)字節(jié)和結(jié)尾兩個(gè)字節(jié)都是一樣,中間的字節(jié)都是不同的。我已經(jīng)想到解決辦法了。
作者: MOVEORDIE    時(shí)間: 2023-11-19 13:35
最長(zhǎng)256字節(jié),不一定都要全部保存,選取用到的關(guān)鍵信息保存




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1