Dir (09.10.2009 18:43 - 10.10.2009 11:27, просмотров: 203) ответил Vladimir Ljaschko на Пасиб. Что-то нахожу уже.
Вот еще из какого-то проекта старого выдернул.
//-----------------------------
// Подпрограммы работы с EEPROM
//-----------------------------
char readEEPROM(short eeadr) // чтение байта с EEPROM
{
__watchdog_reset();
while (EECR & (1 << EEWE));
EEAR = eeadr;
EECR |= (1 << EERE);
EEAR =0;
return EEDR;
}
void writeEEPROM(short eeadr, char eedata) // запись байта в EEPROM
{
__watchdog_reset();
while (EECR & (1 << EEWE));
EEAR = eeadr;
EEDR = eedata;
__disable_interrupt();
EECR = (1 << EEMWE);
EECR |= (1 << EEWE);
__enable_interrupt();
}
void read_block_EEPROM(short eeadr, char buf[], char len) // копировать EEPROM в ОЗУ (<256 байт)
{
__watchdog_reset();
while (EECR & (1 << EEWE));
for (char i = 0; i < len; i++,eeadr++)
{
EEAR = eeadr;
EECR |= (1 << EERE);
buf[i] = EEDR;
}
EEAR = 0;
}
void write_block_EEPROM(short eeadr, char buf[], char len) // копировать ОЗУ в EEPROM (<256 байт)
{
for (char i = 0; i < len; i++,eeadr++)
{
__watchdog_reset();
while (EECR & (1 << EEWE));
EEAR = eeadr;
EEDR = buf[i];
__disable_interrupt();
EECR = (1 << EEMWE);
EECR |= (1 << EEWE);
__enable_interrupt();
}
}