|
|
发表于 2014-4-6 10:52:42
|
显示全部楼层
本帖最后由 Super169 于 2014-4-6 11:07 编辑
例設用 0-3 既位置儲存, 0 為 signature 以確認是否之前的狀態記錄, 假設你用 0xAA 作檢測.
反正只有 3 個 status, 不合成個 byte 也不會太浪費.
- #define SIGNATURE 0xAA
- void setup()
- {
- :
- byte s1, s2, s3;
- if (EEPROM.read(0) == SIGNATURE )
- {
- s1 = EEPROM.read(1);
- s2 = EEPROM.read(2);
- s3 = EEPROM.read(3);
- }
- else
- {
- s1 = s2 = s3 = 0;
- }
- :
- :
- void loop()
- {
- :
- }
- // 當 status 改變時, call 以下 method
- void updateStatus(byte s1, byte s2, byte s3)
- {
- EEPROM.write(0, SIGNATURE );
- EEPROM.write(1, s1);
- EEPROM.write(2, s2);
- EEPROM.write(3, s3);
- }
- }
复制代码
如資料多, 可改成 array 優化儲存/讀取程序.
|
|