Cuando direccionamos los registros de E/S como espacios de datos usando las
instrucciones ST y LD, la localidad 0x20 debe ser añadida a estas direcciones. El
ATmega164P/324P/644P es un microcontrolador complejo con muchas
unidades periféricas que pueden soportar entre las 64 localidades reservadas en
las instrucciones de Entrada y Salida. Para los espacios extendidos de E/S
desde la localidad 0x60 a la 0xFF en la SRAM, solo las instrucciones
ST/STS/STD y LD/LDS/LDD pueden ser usadas.
Para compatibilidad con dispositivos futuros, los bits reservados deberían ser
escritos a cero.
Las direcciones reservadas de E/S nunca deben ser escritas. Algunas de las
banderas de estado son limpiadas por la escritura de un uno lógico en estas.
Note que, a diferencia de otros AVRs, las instrucciones CBI y SBI, solo operan
sobre bits específicos, y pueden además ser usados sobre registros que tienen
tales banderas de estado. Las instrucciones SCI y CBI trabajan con solo con los
registros de la 0x00 a la 0x1F.
Los registros de E/S y periféricos pueden ser usados para almacenar cualquier
información y son particularmente para almacenar variables globales y
banderas de estado.
Los registros de E/S de propósito general están entre los rangos de direcciones
0x00 a la 0x1F y se usa para su acceso las instrucciones SBI, CBI, SBIS y SBIC
7.6 Descripción de Registros
7.6.1 EEARH y EEARL – Los Registros de Dirección de la EEPROM
• Bits 15:12 – Res: Bits Reservados
Estos bits son reservados en el ATmega164P/324P/644P Y siempre se leen
como cero.
• Bits 11:0 – EEAR8:0: Dirección de la EEPROM
Los registros de dirección de la EEPROM –EEARH y EEARL- especifican la
dirección de la EEPROM en los 4K bytes de espacio de la EEPROM. Los bytes
de datos de la EEPROM son direccionables linealmente entre 0 y 4096.
El valor inicial de EEAR no esta definido. Un valor propio debe ser escrito antes
Un valor correcto debe ser escrito antes de que el EEPROM pueda ser accedido.
7.6.2 EEDR – EL Registro de Datos de la EEPROM