pregunta del comando PIC mov

0

Tengo un código que imprime lo que hay en la memoria de mi PIC18F4550 en el puerto serie. Estoy tratando de hacer esto de dos maneras pero solo una es exitosa. ¿Puede alguien aclararme por qué

Versión uno (funcional, creo que al menos ..) He hecho algunas inicializaciones y configuraciones antes del código a continuación

loop:
    btfsc TXSTA, 1
    movff POSTINC0, TXREG
    bra loop

Versión dos (no funciona ...)

loop:
    movf POSTINC0
    btfsc TXSTA, 1
    movwf TXREG
    bra loop

¿Alguna idea?

// Red

    
pregunta RedSmolf

1 respuesta

4

La instrucción btfsc omite la siguiente instrucción cuando el transmisor no está listo para aceptar un nuevo byte.

En el primer fragmento, esta instrucción siguiente copia el byte de datos al registro de transmisión (con incremento automático de la dirección). La siguiente instrucción salta de nuevo al btfsc.

En el segundo fragmento, la instrucción que se omite mueve el contenido de W al registro de transmisión. Eso está bien, pero el salto vuelve a la primera instrucción, que carga un nuevo valor W de la memoria (con incremento automático de dirección) independientemente de si el valor anterior se transmitió o no .

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas