avr: reduce register use in com2WaitForDataState1ms
This commit is contained in:
@@ -189,23 +189,22 @@ com2WaitForAttnHigh_done:
|
|||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; com2WaitForDataState1ms
|
; com2WaitForDataState1ms
|
||||||
;
|
;
|
||||||
; Waits up to COM2_MAXWAIT_US loops for high ATTN line
|
; Waits up to 100ms for high DATA line
|
||||||
; IN:
|
; IN:
|
||||||
|
; - R16: state to wait for (00 for low, 0xff for high)
|
||||||
; OUT:
|
; OUT:
|
||||||
; - CFLAG: set if state reached, cleared otherwise
|
; - CFLAG: set if state reached, cleared otherwise
|
||||||
; REGS: R24 (R22)
|
; REGS: R17, R22
|
||||||
|
|
||||||
com2WaitForDataState1ms:
|
com2WaitForDataState1ms:
|
||||||
ldi r24, 100
|
ldi r17, 100
|
||||||
com2WaitForDataState1ms_loop:
|
com2WaitForDataState1ms_loop:
|
||||||
push r17
|
in r22, COM_PIN_DATA
|
||||||
in r17, COM_PIN_DATA
|
eor r22, r16
|
||||||
eor r17, r16
|
andi r22, (1<<COM_PINNUM_DATA)
|
||||||
andi r17, (1<<COM_PINNUM_DATA)
|
|
||||||
pop r17
|
|
||||||
breq com2WaitForDataState1ms_stateReached
|
breq com2WaitForDataState1ms_stateReached
|
||||||
Utils_WaitNanoSecs 10000, 0, r22 ; wait for 10us
|
Utils_WaitNanoSecs 10000, 0, r22 ; wait for 10us
|
||||||
dec r24
|
dec r17
|
||||||
brne com2WaitForDataState1ms_loop
|
brne com2WaitForDataState1ms_loop
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|||||||
Reference in New Issue
Block a user