Autor Tema: SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?  (Leído 2368 veces)

0 Usuarios y 1 Visitante están viendo este tema.

JACKOLGAO

  • Visitante
SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?
« en: 30 de Marzo de 2006, 06:12:00 »
WENOS DIAS A TODOS!
SOY ESTUDIANTE DE ELECTRONICA Y ME HA SURGIDO UN PROBLEMILLA CON UN PROGRAMA DE ENSAMBLADOR PARA 16F876:
USO DOS POSICIONES DE MEMORIA: 4 BITS PARA ALMACENAR UN DATO Y LOS OTROS 4 DE MENOR PESO MAS EL OTRO BYTE COMPLETO PARA ALMACENAR UN CONTADOR.
YA TENIENDO LOS DATOS CARGADOS DENTRO DE UN BUCLE DECREMENTO ESTE CONTADOR EL PROBLEMA M SURGE EN EL MOMENTO EN EL CUAL YEGO A 0H EN ESOS 4 BITS Q SERIAN LA PARTE ALTA DEL CONTADOR.
EXISTE ALGUN SEÑALIZADOR PARA EMPEZAR A DECREMENTAR EL OTRO BYTE?
SERIA LA Z DEL STATUS COMO OCURRE CON LA SUMA O LA RESTA POR DESBORDAMIENTO?

GRACIAS POR ADELANTADO JAC

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
RE: SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?
« Respuesta #1 en: 30 de Marzo de 2006, 07:46:00 »
Dices algunas cosas que se contradicen, un byte, son 8 bits, por lo tanto no lo puedes almacenar en los 4 bits de menor peso un byte.

El indicador de desbordamiento, es el C (carri, o acarreo), pero para un contador se usaria el Z, pues cuando un registro llega a su fin se pone a cero.

Espero haberte ayudado en algo.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

JACKOLGAO

  • Visitante
RE: SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?
« Respuesta #2 en: 30 de Marzo de 2006, 07:58:00 »
MI DUDA ES Q SI SE SEÑALA EL DESBORDAMIENTO TB EN EL DECREMENTO AL SOBREPASARSE HACIA ABAJO ES DECIR AL PASAR DE 00H A FFH.

A LO DE Q M CONTRADIGO SERÁ XQ M EXPLIQUÉ MAL; USO DEL PRIMER BYTE 4 BITS PARA UN DATO Y LOS OTROS 4 BITS SON LA PARTE ALTA DE UN CONTADOR
(EL OTRO BYTE ES EL RESTO DEL CONTADOR).

DE TODAS FORMAS GRACIAS TODAS.
JACKOLGAO

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?
« Respuesta #3 en: 30 de Marzo de 2006, 12:56:00 »
Escrito originalmente por JACKOLGAO
MI DUDA ES Q SI SE SEÑALA EL DESBORDAMIENTO TB EN EL DECREMENTO AL SOBREPASARSE HACIA ABAJO ES DECIR AL PASAR DE 00H A FFH.

A LO DE Q M CONTRADIGO SERÁ XQ M EXPLIQUÉ MAL; USO DEL PRIMER BYTE 4 BITS PARA UN DATO Y LOS OTROS 4 BITS SON LA PARTE ALTA DE UN CONTADOR
(EL OTRO BYTE ES EL RESTO DEL CONTADOR).

DE TODAS FORMAS GRACIAS TODAS.
JACKOLGAO



En realidad no hay forma de hacer lo que pretendes con una sola instrucción.

Se entendió bien, lo que quieres hacer.  Tu problema está en la variable que tienes dos nibbles, uno para el contador y el otro para otra cuestión y pretendes que el PIC genere un aviso cuando el nibble inferior sea cero.

Si te fijas en el datasheet , las instrucciones DECFSZ y INCFSZ no afectan ningun bit del Status Register.

Tal vez tu pensabas en el bit DC (Digit Carry) pero este bit solo es seteado en operaciones de suma y resta.

Las instrucciones INCF y DECF afectan solo al Z, el cual estará habiltiado cuando sea totalmente 0.

En tu caso yo haría uso del ANDLW que sí afecta al Z, con un codigo como este

Codigo:

   movf   DIGITO,w
   andlw   0x0F      ;borro upper nibble
   btfss   STATUS,Z
   goto   NOESCERO
   goto   ESCERO



Espero haber entendido tu problemática y que esto te ayude a resolver tu problema.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

JACKOLGAO

  • Visitante
RE: SEÑALIZADOR DE DESBORDAMIENTO EN INCREMENTOS O DECREMENTOS?
« Respuesta #4 en: 31 de Marzo de 2006, 08:13:00 »
MUXAS GRACIAS MAUNIX.
LOQ HARE SERA SACAR LOS BITS SUPERIORES (LOS Q ERAN PARA GUARDAR UN DATO) Y YA SOLO QUEDANDO EL CONTADOR DECREMENTAR USANDO Z COMO SEÑALIZADOR.
YA OS CONTARÉ SI M FUNCIONA. TALEGOS Y GRACIAS D NUEVO.
JACKOLGAO


 

anything