熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2023-11-16 11:56
正文摘要: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ù)的正確性。 ... |
最長(zhǎng)256字節(jié),不一定都要全部保存,選取用到的關(guān)鍵信息保存 |
hi等你 發(fā)表于 2023-11-17 15:19 每個(gè)鍵值的紅外數(shù)據(jù)除了開頭兩個(gè)字節(jié)和結(jié)尾兩個(gè)字節(jié)都是一樣,中間的字節(jié)都是不同的。我已經(jīng)想到解決辦法了。 |
hi等你 發(fā)表于 2023-11-17 15:19 此遙控器的原理相當(dāng)于錄音機(jī),將未知編碼的遙控信號(hào)時(shí)序波形記錄下(比如空調(diào)遙控),再將采樣的信號(hào)發(fā)射出去。 |
如果我沒猜錯(cuò)的話,樓主是用直接錄取電平的方式來(lái)存鍵值的。不用解協(xié)議的,直接按1010的方式,所以才需要200+字節(jié)。比如NEC協(xié)議有個(gè)前導(dǎo)碼9ms,就存成100000000000....這樣的格式![]() |
1,STC系列,讀Eeprom 是不影響壽命的。 2,既然你需要寫 236 x 20 字節(jié)到 Eeprom 說(shuō)明你單片機(jī)的 Eeprom容量需要 5K 以上的,應(yīng)該也不會(huì)是太老的單片機(jī),但凡你用 STC15系(204s,408s等老型號(hào)除外)及以上型號(hào)單片機(jī),有什么必要從 Eeproim 里面先讀出來(lái)呢?直接從Eeprom讀,又不會(huì)比XDATA慢…… |
李冬 發(fā)表于 2023-11-17 08:48 學(xué)習(xí)模塊畢竟是學(xué)習(xí)用的,我也不知道您的解碼數(shù)據(jù)怎么需要上百個(gè)字節(jié)來(lái)判斷鍵值, 我也看過(guò)您歷來(lái)的提問(wèn),很多都是作為思維嚴(yán)謹(jǐn)?shù)某绦蛟巢辉搯?wèn)的1+1的較真提問(wèn),你 真的需要用上千k的容量來(lái)?yè)]霍簡(jiǎn)簡(jiǎn)單單的紅外數(shù)據(jù),得多大的單片機(jī)來(lái)滿足這些垃圾 數(shù)據(jù)?做這樣的產(chǎn)品你的老板會(huì)被你氣死,上分析儀多看看紅外時(shí)序,判斷一下哪些是有效 數(shù)據(jù),哪些是無(wú)效丟棄的。1個(gè)字節(jié)有二百多個(gè)變化值,有幾個(gè)字節(jié)判斷頂天了,實(shí)在不 濟(jì)就改行吧,樓主真的不適合這行 |
首先,先搞清楚236字節(jié)數(shù)據(jù)真的都有效嗎? 其次,從EEPROM讀數(shù)據(jù)不減少EEPROM壽命,而且速度也夠快。 |
如果一個(gè)鍵值必需是236個(gè)字節(jié)的話,可以對(duì)20個(gè)鍵值研究一下,找找共同點(diǎn),構(gòu)思出一個(gè)壓縮方案,壓縮后使用。 |
EEPROM里的數(shù)據(jù)不用讀到緩存里,可以用unsigned char code 指針或匯編MOVC指令訪問(wèn)。 |
一個(gè)鍵值居然用了236個(gè)字節(jié),一看是原來(lái)是想用只用一個(gè)P30引腳RX,可以下載程序的 奇思妙想的樓主,我覺得樓主遇到的不是eeprom壽命問(wèn)題,編程需要天賦,需要嚴(yán)謹(jǐn)?shù)?br /> 邏輯能力,如果樓主從事此職業(yè),還是改行比較好,如果樓主是編程興趣愛好,還是走藝術(shù) 路線吧 |
一個(gè)鍵值為啥會(huì)有236個(gè)字節(jié)? |
讀取不會(huì),頻發(fā)擦除會(huì) |
Powered by 單片機(jī)教程網(wǎng)