Rainbow Electronics ATmega64M1 User Manual

Page 25

Advertising
background image

25

8209A–AVR–08/09

ATmega16M1/32M1/64M1

Assembly Code Example

EEPROM_write:

; Wait for completion of previous write

sbic

EECR,EEWE

rjmp

EEPROM_write

; Set up address (r18:r17) in address register

out

EEARH, r18

out

EEARL, r17

; Write data (r16) to data register

out

EEDR,r16

; Write logical one to EEMWE

sbi

EECR,EEMWE

; Start eeprom write by setting EEWE

sbi

EECR,EEWE

ret

C Code Example

void

EEPROM_write (unsigned int uiAddress, unsigned char ucData)

{

/* Wait for completion of previous write */

while(EECR & (1<<EEWE))

;

/* Set up address and data registers */

EEAR = uiAddress;

EEDR = ucData;

/* Write logical one to EEMWE */

EECR |= (1<<EEMWE);

/* Start eeprom write by setting EEWE */

EECR |= (1<<EEWE);

}

Advertising