beautypg.com

Rainbow Electronics ATmega64C1 User Manual

Page 26

background image

26

7647A–AVR–02/08

ATmega32/64/M1/C1

TABLE 1.

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<

;

/* Set up address and data registers */

EEAR = uiAddress;

EEDR = ucData;

/* Write logical one to EEMWE */

EECR |= (1<

/* Start eeprom write by setting EEWE */

EECR |= (1<

}