Цитата(PhX @ Jan 5 2009, 09:25)

Встала проблема – сохранять и затем читать несколько переменных (10-15) в/из EEPROM.
...
p.s. Компилятор Winavr, камень atmega128
Ну в самом простом виде как-то так (несколько переменных независимо от места хранения, удобно группировать по смыслу):
Код
#include <stdint.h>
#include <avr/eeprom.h>
typedef struct {
uint8_t a;
uint16_t b;
float f;
} config;
config cfg;
config ee_cfg EEMEM =
{
12, 1078, 3.5
};
uint16_t ee_u EEMEM = 65000;
float ff;
uint16_t u;
uint16_t foo(void)
{
ff = 7.5;
eeprom_read_block( &cfg, &ee_cfg, sizeof(cfg) ); // можно всю структуру
eeprom_write_block( &ff, &ee_cfg.f, sizeof(float) ); // можно одно поле
uu = eeprom_read_word( &ee_cfg.b );
return eeprom_read_word( &ee_u); // само собой, можно и одночные переменные
}