TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: FER_CBA en 22 de Abril de 2007, 17:27:48
-
Alguien conoce una rutina que funcione para compara 2 bytes de los cuales solo uso los 4 bits menos significativos, osea que el valor del byte nunca es mayor a 15. Uso un pic 16F628a en lenguaje ensamblador. Estuve tratando con los bits dc yc ero no me funciono. necesito saber cuando uno es mayor que otro o igual. gracias
-
Debería funcionarte bien con el acarreo y el Z
Algo así debe funcionar:
comparar:
movfw NUMERO_A
subwf NUMERO_B,W
btfsc STATUS,C
goto Determinar_Zero
goto Resultado_Negativo
Determinar_Zero
btfss STATUS,Z
goto Resultado_Positivo
goto Resultado_Zero
-
Gracias por la respuesta pero no se si viste que trabajo solo con el nible inferior de cada byte, lo mismo verifico el C o el DC? gracias
-
Si solo quieres tomar solo los 4 bits menos significativos, deberías limpiar el byte de la siguiente manera, ten cuidado de usar nuevas variables para no grabar el NUMERO_B limpiado sobre el ORIGINAL_B.
comparar:
movfw ORIGINAL_B
addlw 0x0F
movwf NUMERO_B
movfw ORIGINAL_A
addlw 0x0F
subwf NUMERO_B,W
btfsc STATUS,C
goto Determinar_Zero
goto Resultado_Negativo
Determinar_Zero
btfss STATUS,Z
goto Resultado_Positivo
goto Resultado_Zero
Salud 8)