Давно уже с АВРками дела не имел может что-то не так. Есть устройство с Mega48-20. Тактовая 4 МГц. Фуз еепрома стоит правильно, запись разрешена. Функции чтения-записи из даташита. Не пишет в еепром, в т.ч. и на симуляторе тоже. Что это может быть, что я забыл? Прерывания запрещаю. Пишется из главного цикла. Читать получается (0хFF).
Код
void EEPROM_write(unsigned int Address, unsigned char Data)
{
while(EECR & (1<<EEPE)); /* Wait for completion of previous write */
EEAR = Address; /* Set up address and Data Registers */
EEDR = Data;
EECR |= (1<<EEMPE); /* Write logical one to EEMPE */
EECR |= (1<<EEPE); /* Start eeprom write by setting EEPE */
}
unsigned char EEPROM_read(unsigned int Address)
{
while(EECR & (1<<EEPE)); /* Wait for completion of previous write */
EEAR = Address; /* Set up address register */
EECR |= (1<<EERE); /* Start eeprom read by writing EERE */
return EEDR; /* Return data from Data Register */
}
while(1)
{
if(mode)
{
PORTC = 0b00010000;
delay(30000);
PORTC = 0b00000000;
delay(30000);
}
if(mem)
{
asm("cli");
EEPROM_write(0x0A, mode);
EEPROM_write(0x0B, output);
mem = 0;
asm("sei");
}
//проверить питание
}//while
Живи днем так, чтобы ночью ты спал спокойно.