26.12.13

ATmega16 - SRAM

En la programación con lenguaje ensamblador es necesario conocer como está conformada la memoria SRAM ya que colocaremos de manera manualmente los datos, manejaremos los 32 registros de trabajo y los registros de entrada/salida; sin embargo cuando se programa en C el compilador se encarga de reconocer cada tipo de registro y tambien coloca el programa en la zona de memoria adecuada.


La memoria del ATmega16 se distribuye de la siguiente manera:


- Las 32 primeras posiciones son utilizadas por los registros de trabajo.
- Las siguientes 60 posiciones son para los registros de Entrada/Salida, estos registros son utilizados por los recursos del uC para configurarlos y/o utilizarlos.


- A partir de $60 hasta $45F (1024 posiciones) son posiciones de memoria destinados para el usuario.


Simulación:
Realizaremos una simulación en el ISIS del Proteus (v7.9) para comprobar que nuestro programa esta adecuadamente implementado, en este caso solo necesitamos el ATmega ya que no estamos usando recursos externos.

Haciendo doble clic sobre el uC nos sale una ventana como esta:


Para ver la memoria RAM de nuestro uC hacemos los siguiente:
- Presionamos en el botón Step.
- Debug--AVR Data Memory


Y como vemos, el copiado fue realizado exitosamente.


Descargas:
Datasheet ATmega16A
AVR Instruction Set
Source Code

0 comments:

Post a Comment