×
嵌入式 > 技术百科 > 详情

精确延时程序

发布时间:2020-09-27 发布时间:
|
 在写一些有些时序的程序时,要用到准确的延时时间,以下是使用Keil软件的反汇编来计算延时的。

程序如:

void delayns(uchar t)
{ uchar k,i,j;
for(k=0;k for(i=0;i<14;i++)
for(j=0;j<237;j++);
}

经过汇编后计算的结果为
(3*j*i+5*i+10)*k+4=10024*k+5 us;这个10us的延时还行

他的反汇编程序是:

CLR A 1
MOV R6,A 1
?C0008:
MOV A,R6 1*k
CLR C 1*k
SUBB A,R7 1*k
JNC ?C0017 2*k
; for(i=0;i<14;i++)

CLR A 1*k
MOV R5,A 1*k
?C0011:
; for(j=0;j<237;j++);
CLR A 1*i*k
MOV R4,A 1*i*k
?C0014:
INC R4 1*j*i*k
CJNE R4,#0EDH,?C0014 2*j*i*k #0EDH为j
?C0013:
INC R5 1*i*k
CJNE R5,#0EH,?C0011 2*i*k #0EH为i
?C0010:
INC R6 1*k
SJMP ?C0008 2*k
; }

?C0017:
RET 2
; END OF _delayns




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Semtech的LoRa技术携手Chipsafer将牧场连接至云端