Код
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
{
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