MSP430 Delay Subrutine

1

Estoy escribiendo una subrutina de retardo en lenguaje ensamblador para el MSP430. Quiero saber cómo calcular el número que hay que poner en el Registro R10 para lograr un retraso de 20 ms. Gracias

Delay    mov     #Number,R10 ;20 ms delay
L1       dec     R10
         jnz     L1
         ret
    
pregunta EMPV

1 respuesta

3

Consulte la sección 3.4.4 (Ciclos de instrucción y longitudes) de la Guía del usuario de la familia 2xx (SLAU144):

CALL Delay    5 cycles
MOV #x, R10   2 cycles
DEC R10     x*1 cycles
JNZ L1      x*2 cycles
RET           3 cycles (Format-I instruction: MOV @SP+,PC)
Para 20 ms a 1 MHz, desea 20,000 ciclos. Haz las matematicas.

O simplemente deja que el compilador haga el trabajo:

__delay_cycles(20000);
    
respondido por el CL.

Lea otras preguntas en las etiquetas