Witam,
Mam problem z zapisem i odczytem do EEPROM łancucha zmiennych typu char
Atmega162, avrgcc, program symuluje w winavr + hapsim + virtual port kit
Zmienne odczytane z eepromu wysyłam przez uart. Odczytywana jest jedynie ostatnia zapisana zmienna, wcześniejsze są puste (nie są wyświetlane żadne znaki). Jeśli usunę fragment kodu odpowiedzialny za zapis ostatniej zmiennej do EEPROM (phonenumber) to wtedy poprawnie zapisywana i odczytywana jest wcześniejsza zmienna czyli portnumber.
Proszę o jakieś sugestie.
Mam problem z zapisem i odczytem do EEPROM łancucha zmiennych typu char
Atmega162, avrgcc, program symuluje w winavr + hapsim + virtual port kit
char ipaddress[16];
char ipaddress_odczytany[16];
char portnumber[6];
char portnumber_odczytany[6];
char phonenumber[11];
char phonenumber_odczytany[11];
static EEMEM char ipaddress_ee[16];
static EEMEM char portnumber_ee[6];
static EEMEM char phonenumber_ee[11];
//zapis do eepromu np. ip=192.168.001.100
for(i=0;i<17;i++)
{
eeprom_write_byte(&ipaddress_ee[i], ipaddress[i]);
eeprom_busy_wait();
}
for(i=0;i<7;i++)
{
eeprom_write_byte(&portnumber_ee[i], portnumber[i]);
eeprom_busy_wait();
}
for(i=0;i<12;i++)
{
eeprom_write_byte(&phonenumber_ee[i], phonenumber[i]);
eeprom_busy_wait();
}
//odczyt z eepromu
for(i=0;i<17;i++)
{
ipaddress_odczytany[i]=eeprom_read_byte(&ipaddress_ee[i]);
}
for(i=0;i<7;i++)
{
portnumber_odczytany[i]=eeprom_read_byte(&portnumber_ee[i]);
}
for(i=0;i<12;i++)
{
phonenumber_odczytany[i]=eeprom_read_byte(&phonenumber_ee[i]);
}Zmienne odczytane z eepromu wysyłam przez uart. Odczytywana jest jedynie ostatnia zapisana zmienna, wcześniejsze są puste (nie są wyświetlane żadne znaki). Jeśli usunę fragment kodu odpowiedzialny za zapis ostatniej zmiennej do EEPROM (phonenumber) to wtedy poprawnie zapisywana i odczytywana jest wcześniejsza zmienna czyli portnumber.
Proszę o jakieś sugestie.