TODOPIC

Misceláneas - Interés General => Uso y aplicaciones de los PIC / Curiosidades electrónicas => Mensaje iniciado por: kaiserwald18 en 21 de Marzo de 2016, 18:14:18

Título: Problemas Pic18f4550 (ensamblador)
Publicado por: kaiserwald18 en 21 de Marzo de 2016, 18:14:18
Hola a todos, soy nuevo en este foro.
Al comenzar con el pic18f4550 me han suscitado problemas al hacer comparaciones, utulizo la instruccion subwf para restar dos variables (si ambas tienen el mismo numero la bandera Z se pondra en 1) pero al checar la bandera Z no me hace nada, he checado desde antes que los numeros sean los mismos para que la resta sea igual a 0.
El comparador lo uso como metodo para contar cuantos aciertos se tienen (ya que los numeros a comparar siempre cambian). Entonces al hacer la comparacion si es correcta aumento una variable con la instruccion incf, pero no hace nada al comparar.

Si me pudieran ayudar se los agradeceria mucho  :mrgreen: 
Título: Re:Problemas Pic18f4550 (ensamblador)
Publicado por: vixctor en 21 de Marzo de 2016, 18:51:44
Hola, si pudieras pegar esa parte del código en el foro, sería más fácil ayudarte.

Saludos
Título: Re:Problemas Pic18f4550 (ensamblador)
Publicado por: luismh en 22 de Marzo de 2016, 08:45:57
El assembler de los pic18 tiene instrucciones muy útiles para comparación... No es necesario realizar la resta ni leer Z para hacer la comparación

Podrías leer en la hoja de datos sobre las siguientes instrucciones:

cpfseq f: compara f con W y salta si son iguales

cpfsgt f: compara f con W y salta si f>W

cpfslt f: compara f con W y salta si f<W

tstfsz f: salta si f=0

y también están los "branch", útiles para realizar estructuras tipo "if", "while" y "do while"

BC
BNC
BNN
BNOV
BNZ
BOV
BRA
BZ

Saludos!