From Dwayne Reid
;10 bit delay routine providing 1 cycle resolution. Works with both 12 & 14 bit core PICs. ;Original idea from Mike Harrison. This version by Dwayne Reid ; ;enters with upper 8 bits of delay in DELAYU, lower 2 bits in bits 1,0 of DELAYL ;bits 7..2 in DELAYL can be used as flags for whatever purpose desired. ;returns with W destroyed Delay10bit ;delay is 10 bit value + 7 cycles ( + call + return, if any) incf DELAYU,F ;correct for dec & test instead of test & dec Dly10bLoop comf DELAYL,W ;invert LSBs decfsz DELAYU,F goto Dly10bLoop ;coarse delay to closest 4 cycles andlw b'00000011' addwf PCL,F nop nop nop