📄 sys_kernel_sub.asm
字号:
.text
.global _delayMs_SYS,_delayUs_SYS
;**************************
_delayMs_SYS:
.if 0
pshboth(xar0)
push(ar1)
nop
xar0 = _PWM_clockGene
push(@BRC0_L) || mmap()
push(@BRC1_L) || mmap()
ar1 = *ar0(PWM_clockGene_ms)
ar1 -= #1
delayMs_loop:
brc0 = ar1
brc1 = 99
blockrepeat{
localrepeat{ ; 10 nops.
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
}
}
t0 -= #1
if(t0 != 0) goto delayMs_loop
@BRC1_L = pop() || mmap()
@BRC0_L = pop() || mmap()
ar1 = pop()
xar0 = popboth()
nop
nop
.else
pshboth(ac0)
_circle2_ForCdelay_sub:
;inner circle
ac0=#3fffh
_circle_ForCdelay_sub:
ac0-=#1
nop
if (ac0!=#0) goto _circle_ForCdelay_sub
;outer circle
t0-=#1 ;decrement the ar5
if(t0!=#0) goto _circle2_ForCdelay_sub
;ac2=pop()
ac0=popboth()
.endif
return
_delayUs_SYS:
.if 0
pshboth(xar0)
push(@CSR_L) || mmap()
xar0 = _PWM_clockGene
nop
nop
delayUs_loop:
csr = *ar0(PWM_clockGene_us)
repeat(csr)
nop
nop
t0 -= #1
if(t0 != 0) goto delayUs_loop
@CSR_L = pop() || mmap()
xar0 = popboth()
nop
nop
.else
pshboth(ac0)
_circle2_ForCdelay_us_sub:
;inner circle
ac0=#0fh
_circle_ForCdelay_us_sub:
ac0-=#1
nop
if (ac0!=#0) goto _circle_ForCdelay_us_sub
;outer circle
t0-=#1 ;decrement the ar5
if(t0!=#0) goto _circle2_ForCdelay_us_sub
nop
ac0=popboth()
.endif
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -