欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求一個檢測到參數改變就往EEPROM中寫入的MCU程序框架 [打印本頁]

作者: hxdby    時間: 2022-2-28 16:58
標題: 求一個檢測到參數改變就往EEPROM中寫入的MCU程序框架
現在要做一個小的監控器,需要設置監控時間,為了每次開機時不需要一直設置時間,需要在每次關機前保存當前參數,下次開機前就不需要重新設置了。

現在是想把時間參數保存到EEPROM中,當設置好時間時,同時就自動寫入EEPROM中,下次開機后再讀取。如果時間沒有被改動,就不需要重復寫入,只是檢測到時間改動后再寫入。

比如如果當前時間設置是20分鐘,如果這一天中,時間設置的都是20分鐘, 沒有設置新的時間,就保存20分鐘到EEPROM, 如果上午設置的是20分鐘,下午設置了新的時間30分鐘,當檢測到時間改變時,就把30寫進EEPROM, 覆蓋之前的20. 簡單說就是把最后一次設置的時間寫入EEPROM.

不需要掉電檢測,初步就是這個想法,只需檢測時間參數改動就往EEPROM中寫入新的參數保存,不改動就不寫。

求一個大概的程序框架,只需要檢測到時間參數改動就往EEPROM中寫,以及下次開機讀取的大致程序。不需要EERPOM本身的讀寫程序。

感謝各位!

作者: wulin    時間: 2022-2-28 20:31
        if(a!=b)
        {
                b=a;
                //保存b到EEPROM中
        }
作者: 188610329    時間: 2022-2-28 20:47
Eeprom 大體有三種,  
一種是 片外Eeprom:  比如 AT24C02, 一般需要通過 IIC 傳輸協議 進行讀寫。寫一個字節大約需要 40us 左右的時間。
一種是 片內Eeprom:  51系列來講,比較有代表性的就是 WCH 的  CH55x系列,讀寫都比較方便,就是寫幾個寄存器,寫一個字節,大約需要5us 左右。
還有一種就是 片內Flash 模擬 Eeprom,比較有代表性的就是STC的全系列。 基本和片內Eeprom 用起來差不多,最大的區別就是不能改寫,只能整個扇區擦出后,重寫,如果你要使用這種Eeprom 的話,就要考慮一個擦除問題,因為擦除一個扇區的時間大約需要 21ms,而單片機在理想狀態下,從感知掉電到徹底沒電,或者說剩余電量可以用來操作Eeprom 的存留時間不超過10ms,所以,你要在掉電是存儲Eeprom必須在感知掉電前就完成了扇區擦除工作。這個在程序里必須提前做好。其他的就是普通操作了。

作者: hxdby    時間: 2022-2-28 23:15
wulin 發表于 2022-2-28 20:31
if(a!=b)
        {
                b=a;

哈哈,這么簡單嘛
作者: hxdby    時間: 2022-2-28 23:16
188610329 發表于 2022-2-28 20:47
Eeprom 大體有三種,  
一種是 片外Eeprom:  比如 AT24C02, 一般需要通過 IIC 傳輸協議 進行讀寫。寫一個字 ...

謝謝,我用的是AVR單片機,不知道擦除EEPROM是不是先要擦除扇區,以前從來沒用過EEPROM
作者: hxdby    時間: 2022-3-7 22:32
wulin 發表于 2022-2-28 20:31
if(a!=b)
        {
                b=a;

有個問題請教下,我現在需要保存的數據有100多個,如果有改動就保存的話,要設置100多個變量, 程序太長了,寫下來累死了。有沒有比較簡單方便的寫法,比如循環之類的,可以方便的實現你這個功能的?謝謝
作者: chenchuanke    時間: 2022-3-7 22:50
hxdby 發表于 2022-3-7 22:32
有個問題請教下,我現在需要保存的數據有100多個,如果有改動就保存的話,要設置100多個變量, 程序太長 ...

用指針可以實現
作者: hxdby    時間: 2022-3-7 23:34
chenchuanke 發表于 2022-3-7 22:50
用指針可以實現

明白,謝謝,我研究下




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