avr: reuse code (saves a few more bytes).
This commit is contained in:
@@ -34,8 +34,7 @@ com2ReceivePacketRaw:
|
|||||||
cpi r16, 0xff
|
cpi r16, 0xff
|
||||||
breq com2ReceivePacketRaw_acceptAddr
|
breq com2ReceivePacketRaw_acceptAddr
|
||||||
ldi r16, COM2_ERROR_NOTFORME
|
ldi r16, COM2_ERROR_NOTFORME
|
||||||
clc ; not for me
|
rjmp com2ReceivePacketRaw_error ; clc/ret
|
||||||
ret
|
|
||||||
com2ReceivePacketRaw_acceptAddr:
|
com2ReceivePacketRaw_acceptAddr:
|
||||||
st X+, r16 ; store dest address, lock buffer
|
st X+, r16 ; store dest address, lock buffer
|
||||||
; read msg length
|
; read msg length
|
||||||
@@ -54,16 +53,14 @@ com2ReceivePacketRaw_loop:
|
|||||||
st X+, r16
|
st X+, r16
|
||||||
dec r17
|
dec r17
|
||||||
brne com2ReceivePacketRaw_loop
|
brne com2ReceivePacketRaw_loop
|
||||||
sec
|
rjmp com2PacketsSecRet
|
||||||
ret
|
|
||||||
com2ReceivePacketRaw_ioError:
|
com2ReceivePacketRaw_ioError:
|
||||||
ldi r16, COM2_ERROR_IOERROR
|
ldi r16, COM2_ERROR_IOERROR
|
||||||
rjmp com2ReceivePacketRaw_error
|
rjmp com2PacketsClcRet
|
||||||
com2ReceivePacketRaw_contentError:
|
com2ReceivePacketRaw_contentError:
|
||||||
ldi r16, COM2_ERROR_DATAERROR
|
ldi r16, COM2_ERROR_DATAERROR
|
||||||
com2ReceivePacketRaw_error:
|
com2ReceivePacketRaw_error:
|
||||||
clc
|
rjmp com2PacketsClcRet
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -105,8 +102,7 @@ COM2_SendPacketWithAttn:
|
|||||||
; packet successfully sent
|
; packet successfully sent
|
||||||
out SREG, r15
|
out SREG, r15
|
||||||
pop r15
|
pop r15
|
||||||
sec
|
rjmp com2PacketsSecRet
|
||||||
ret
|
|
||||||
|
|
||||||
COM2_SendPacketWithAttn_ioError:
|
COM2_SendPacketWithAttn_ioError:
|
||||||
ldi r16,COM2_ERROR_COLLISION
|
ldi r16,COM2_ERROR_COLLISION
|
||||||
@@ -117,8 +113,7 @@ COM2_SendPacketWithAttn_lineBusyError:
|
|||||||
COM2_SendPacketWithAttn_retNc:
|
COM2_SendPacketWithAttn_retNc:
|
||||||
pop r15
|
pop r15
|
||||||
out SREG, r15
|
out SREG, r15
|
||||||
clc
|
rjmp com2PacketsClcRet
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -132,7 +127,7 @@ COM2_SendPacketWithAttn_retNc:
|
|||||||
; REGS: r22
|
; REGS: r22
|
||||||
|
|
||||||
com2WaitForOneBitLength:
|
com2WaitForOneBitLength:
|
||||||
Utils_WaitNanoSecs COM_BIT_LENGTH, 3+4, r22 ; wait for one bit duration (minus RCALL/RET)
|
Utils_WaitNanoSecs COM_BIT_LENGTH, 7, r22 ; wait for one bit duration (minus RCALL/RET)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
@@ -151,14 +146,18 @@ com2SendPacketRaw:
|
|||||||
com2SendPacket_loop:
|
com2SendPacket_loop:
|
||||||
ld r16, X+
|
ld r16, X+
|
||||||
rcall com2SendByte ; send byte (R16, R21, R22)
|
rcall com2SendByte ; send byte (R16, R21, R22)
|
||||||
brcc com2SendPacket_ioError
|
brcc com2PacketsClcRet
|
||||||
dec r17
|
dec r17
|
||||||
brne com2SendPacket_loop
|
brne com2SendPacket_loop
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
com2SendPacket_ioError:
|
|
||||||
|
|
||||||
|
com2PacketsClcRet:
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
com2PacketsSecRet:
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user