Цитата(Владимир_КПИ @ Feb 10 2008, 18:46)

Подскажите, что делаю не так.
В CV достаточно просто объявить переменную:
Код
eeprom char beta;
Дальше с ней можно работать как с обычной переменной:
Код
beta = 0x4F;
x = beta;
beta++;
Ну если хочется на "низком уровне":
Код
#define EERE 0
#define EEWE 1
#define EEMWE 2
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
unsigned char _sreg_;
/* Wait for completion of previous write */
while(EECR & (1<<EEWE));
_sreg_ = SREG;
cli();
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
// фича CV - отключение оптимизации
#pragma opt-
/* Write logical one to EEMWE */
EECR = (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR = (1<<EEWE);
#pragma opt+
SREG = _sreg_;
}