Autor Tema: novato con los pic  (Leído 2077 veces)

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

Desconectado martos_iii

  • PIC10
  • *
  • Mensajes: 26
novato con los pic
« en: 04 de Diciembre de 2004, 03:04:00 »
hola a todos, estoy haciendo mi segundo programa para el pic 16f84. El programa consiste en hacer un retardo de un tiempo determinado. El problema lo tengo en que creo que no entiendo bien la instrucción decfsz, bueno el trozo de codigo es muy simple y es el siguiente:

lista de variables utilizadas
      var1   EQU      0ch
      var2   EQU      0eh    
;fin de definición de variables      
      list p=PIC16f84
      include "p16f84.inc"
      
      org      00h
      reset
      goto   inicio            
                         

      org      10h               

      

inicio   
      movlw 02h
      movwf var1
      movwf var2
salto1      
                decfsz var1,1
      goto salto1
      decfsz var2,1
      goto salto1
      
end


Yo creo que por ejemplo en la primerra instruccion "decfsz" según he leido en el manual, se debería decrementar la var1 una vez y almacenar el resultado en ellay luego saltar de nuevo a uno, después decrementar la var1 de nuevo y como el resultado es cero saltar la instrucción "goto salto1" y pasar directamente a decfsz var2 y en este caso se consumirian dos ciclos de reloj.
Mi problema es que la primera vez lo hace todo bien pero luego cuando lo simulo en MPLAB el programa ya se "atasca en decfsz var1,1" y no pasa de ahi. Bueno supongo que todo esto será una duda bastante tonta. Muchas gracias a todosLlorando

Desconectado gfp

  • PIC18
  • ****
  • Mensajes: 274
RE: novato con los pic
« Respuesta #1 en: 04 de Diciembre de 2004, 14:59:00 »
Por que no lo haces así:

   LIST P=PIC16F84
#INCLUDE <P16F874.INC>
var1 EQU 0ch
var2 EQU 0eh

   ORG   0
   GOTO   INICIO
   ORG   10

INICIO
      movlw 02h
      movwf var1
      movwf var2
salto1
      decfsz   var1,1
      goto   salto1
salto2
      decfsz   var2,1
      goto   salto2
      goto   INICIO
      END

gfp :-)


 

anything