|
.def _DSP28x_usDelay
;==================================================== ;Delay Function ;The C assembly call will look as follows: ; ; extern void Delay(long time);
; MOV AL,#LowLoopCount ; MOV AH,#HighLoopCount ; LCR _Delay ; ;Or as follows (if count is less then 16-bits): ; ; MOV ACC,#LoopCount ; LCR _Delay
.global __DSP28x_usDelay _DSP28x_usDelay: SUB ACC,#1 NOP NOP BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0 LRETR
;There is a 9/10 cycle overhead and each loop ;takes five cycles. The LoopCount is given by ;the following formula:
; DELAY_CPU_CYLES = 9 + 5*LoopCount
; LoopCount = (DELAY_CPU_CYCLES - 9) / 5
;================================================== --
RE:我是这么调用的(C语言) extern void DSP28x_usDelay(long time); 在需要延时的地方加入 DSP28x_usDelay(0x100000);//根据延迟时间写入参数
|