ATmega329P/3290P
Assembly Code Example
EEPROM_read:
; Wait for completion of previous write
sbic EECR,EEWE
rjmp EEPROM_read
; Set up address (r18:r17) in address register
out EEARH, r18
out EEARL, r17
; Start eeprom read by writing EERE
sbi EECR,EERE
; Read data from Data Register
in r16,EEDR
ret
C Code Example
unsigned char EEPROM_read(unsigned int uiAddress)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up address register */
EEAR = uiAddress;
/* Start eeprom read by writing EERE */
EECR |= (1<<EERE);
/* Return data from Data Register */
return EEDR;
}
6.6.5 GPIOR2 – General Purpose I/O Register 2
Bit
0x2B (0x4B)
Read/Write
Initial Value
7
6
5
4
3
2
1
0
MSB
LSB
GPIOR2
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
6.6.6 GPIOR1 – General Purpose I/O Register 1
Bit
0x2A (0x4A)
Read/Write
Initial Value
7
6
5
4
3
2
1
0
MSB
LSB
GPIOR1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
6.6.7 GPIOR0 – General Purpose I/O Register 0
Bit
0x1E (0x3E)
Read/Write
Initial Value
7
6
5
4
3
2
1
0
MSB
LSB
GPIOR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
27
8021A–AVR–12/06