Процедуры записи и чтения EEPROM
void EPROM_W(int ADDR, char DATA) { unsigned char savedSREG; while (EECR & (1<<EEWE) ) ; // wait bit EEWE EEAR = ADDR; // set address EEDR = DATA; // set data savedSREG = SREG; // keep setting so it can be restored EECR |= BIT(EEMWE); // set "write enable" bit EECR |= BIT(EEWE); // set "write" bit SREG = savedSREG; // restore SREG }
char EPROM_R(int ADDR) { while (EECR & (1<<EEWE)); CLI(); // disable interrupts EEAR = ADDR; // set address EECR |= BIT(EERE); // set "read enable" bit SEI(); //re-enable interrupts return (EEDR); }
|