ayuda con contador de 2 bytes

Foro para postear los temas de ensamblador

Moderator: Junta Directiva

Post Reply
User avatar
MorgoZ
Usuario Avanzado
Usuario Avanzado
Posts: 208
Joined: Tue Sep 19, 2006 10:08 pm

ayuda con contador de 2 bytes

Post by MorgoZ » Sun Nov 23, 2008 10:22 am

Hola de nuevo!!

Estoy intentando hacer un contador en AVR, y el tema es que cuento cantidades de 2 bytes.
Los 2 bytes los tengo almacenados en memoria, pero no se como recogerlos para ir decrementando el número y avanzar así el contador, ya que todos los registros son de 1 byte.

¿Se puede decrementar directamente un número de 2 bytes sobre memoria SRAM?

A ver si me podeis echar una mano.

Gracias!!

User avatar
Urriellu
Iniciado
Iniciado
Posts: 61
Joined: Sat Feb 10, 2007 6:45 pm
Nombre: A. Bulnes
Location: Gijón
Contact:

Re: ayuda con contador de 2 bytes

Post by Urriellu » Sun Nov 23, 2008 1:13 pm

¿Qué lenguaje estás usando? Si usas uno de alto nivel (como C) se supone que debería incluir variables de varios tamaños.

Si lo estás haciendo en lenguaje ensamblador en una arquitectura en la que los registros son de 8 bits y no hay ninguna instrucción que trabaje sobre registros de más de 8 bits, entonces lo que puedes hacer es decrementar el byte de menor peso, después comprobar si se desbordó, y en el caso de que se haya desbordado entonces decrementas el byte de mayor peso.
Mis proyectos

Bastian
Usuario Avanzado
Usuario Avanzado
Posts: 384
Joined: Wed Feb 13, 2008 9:29 pm
Nombre: David Carmona
Location: Utiel
Contact:

Re: ayuda con contador de 2 bytes

Post by Bastian » Sun Nov 23, 2008 11:12 pm

Hola!

No conozco mucho de los AVR, pero creo recordar que tienen registros de 16 bits que permiten operaciones de incremento y decremento en ensamblador, en concreto los punteros de datos indirectos (registros X, Y y Z). Normalmente se utilizan para apuntar a datos en SRAM, es decir guardando una direccion de 16 bits, pero se pueden modificar con los registros XH y XL (byte alto y bajo del registro respectivamente).

En el antiguo 8051 solo habia uno o dos y podias incrementar y decrementarlo haciendo algo como

Code: Select all

inc DPTR
dec DPTR
en los AVR se que puedes acceder a datos de la SRAM con instrucciones que incrementan o decrementan el puntero automáticamente, pero no recuerdo si soportan la instruccion inc o dec...

Salu2! :wink:
Existen 10 tipos de personas...
los que saben binario y los que no.

El conocimiento es un arma poderosa... Aprende!!!


Mi blog: Robotica Lúdica Pingubot

User avatar
MorgoZ
Usuario Avanzado
Usuario Avanzado
Posts: 208
Joined: Tue Sep 19, 2006 10:08 pm

Re: ayuda con contador de 2 bytes

Post by MorgoZ » Thu Nov 27, 2008 5:16 pm

Muchas gracias a todos!!

Finalmente lo que haré es cargar directamente el contador en un registro de 16 bits (X,Y oZ) y decrementar o incrementar con las funciones ADIW o SBIW, ya que las de INC y DEC no valen para este tipo de registros.

Gracias y saludos!!

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest