Rutina de espera de 0.01s para PICmicro


Esta rutina, insertada en cualquier desarrollo con PICmicro corriendo con un cristal de 4MHz permite hacer demoras de 1 décima de segundo. Fue publicada por Dennis Crawley en la lista PicListLatina.

; Delay = 0.01 seconds
; Clock frequency = 4 MHz

; Actual delay = 0.01 seconds = 10000 cycles
; Error = 0 %

cblock
    Loop
    Loop1
endc

;9945 cycles
    movlw 0x2c
    movwf Loop
Delay10ms_00
    movlw 0x4a
    movwf Loop1
Delay10ms_01
    decfsz Loop1, f
    goto Delay10ms_01
    decfsz Loop, f
    goto Delay10ms_00

;49 cycles
    movlw 0x10
    movwf Loop
Delay10ms_10
    decfsz Loop, f
    goto Delay10ms_10

;2 cycles
    goto $+1

;4 cycles (including call)
    return