94 lines
2.1 KiB
NASM
94 lines
2.1 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2023 by Martin Preuss
|
|
; email : martin@libchipcard.de
|
|
;
|
|
; ***************************************************************************
|
|
; * This file is part of the project "AqHome". *
|
|
; * Please see toplevel file COPYING of that project for license details. *
|
|
; ***************************************************************************
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine Utils_WaitFor10MicroSecs @global
|
|
;
|
|
; wait for 10 microsecs (minus cycles for call and ret).
|
|
;
|
|
; @clobbers r22
|
|
|
|
Utils_WaitFor10MicroSecs:
|
|
Utils_WaitNanoSecs 10000, 7, r22 ; wait for 10us (minus RCALL and RET)
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine Utils_WaitFor50MicroSecs @global
|
|
;
|
|
; wait for 50 microsecs (minus cycles for call and ret).
|
|
;
|
|
; @clobbers r22
|
|
|
|
Utils_WaitFor50MicroSecs:
|
|
Utils_WaitNanoSecs 50000, 7, r22 ; wait for 50us (minus RCALL and RET)
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine Utils_WaitFor100MicroSecs @global
|
|
;
|
|
; wait for about 100 microsecs.
|
|
;
|
|
; @clobbers r22
|
|
|
|
Utils_WaitFor100MicroSecs:
|
|
rcall Utils_WaitFor50MicroSecs
|
|
rcall Utils_WaitFor50MicroSecs
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine Utils_WaitFor1MilliSec @global
|
|
;
|
|
; wait for about 1ms.
|
|
;
|
|
; @clobbers r22
|
|
|
|
Utils_WaitFor1MilliSec:
|
|
push r21
|
|
ldi r21, 10
|
|
Utils_WaitFor1MilliSec_loop:
|
|
rcall Utils_WaitFor100MicroSecs ; (R22)
|
|
dec r21
|
|
brne Utils_WaitFor1MilliSec_loop
|
|
pop r21
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine Utils_WaitForMilliSecs @global
|
|
;
|
|
; wait for given amount of milliseconds
|
|
; @param r16 number of millisecs to wait
|
|
; @clobbers r22
|
|
|
|
Utils_WaitForMilliSecs:
|
|
rcall Utils_WaitFor100MicroSecs ; (R22)
|
|
dec r16
|
|
brne Utils_WaitForMilliSecs
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
|
|
|