2016-04-14 50 views
0

我的Attiny85丟失了整個EEPROM數據,如果我打開電源。 我使用Arduino IDE,並且我確信,EEPROM被寫入,因爲我獲得了串行反饋。在這裏我的代碼:Attiny85 EEPROM擦除後掉電

#include <EEPROM.h> 
#include <SoftwareSerial.h> 

SoftwareSerial SSerial(0, 1); 

int addr = 0; 
uint8_t val = 2; 

void setup() 
{ 
    SSerial.begin(9600); 
} 

void loop() 
{ 
    EEPROM.write(addr, val); 

    delay(100); 

    uint8_t value = EEPROM.read(addr); 

    SSerial.print(addr); 
    SSerial.print("\t"); 
    SSerial.print(value, DEC); 
    SSerial.println(); 

    addr = addr + 1; 
    if (addr == 512) 
    while(1); 
} 

謝謝:)

+0

不要在循環中寫入eeprom,它可能會損壞它。您正在使用可變地址,但未聲明 –

+0

您確定這是您嘗試的代碼。 「地址」在任何地方都沒有定義。在測試過程中,您是否因寫代碼循環時間過長而殺死了EEPROM? –

+0

循環只運行一次。 – SPJS01Pro

回答

2

編程通過ISP SPI EEPROM擦除(所有值成爲0xFF的),在默認情況下,但似乎這個功能可以在編程設置的設定。通過bootloader編程不會擦除eeprom。

謝謝@Vladimir Tsykunov

+0

由於這是弗拉基米爾的評論,所以讓他更好一些發佈它作爲答案(給他信用)... – frarugi87

+0

如果他張貼他的答案,當然我會檢查他的帖子 – SPJS01Pro