avr: Try to fix a bug (not respecting DENY_ADDRESS).

This commit is contained in:
Martin Preuss
2024-09-27 00:33:11 +02:00
parent 6676024cb0
commit 07f99b7050
3 changed files with 48 additions and 25 deletions

View File

@@ -41,7 +41,8 @@ cproAddressOnTimerTable:
.dw cproHandle1sSendingHaveAddress ; CPRO_MODE_SENDING_HAVE_ADDR
.dw cproHandle1sSendReclaimAddr ; CPRO_MODE_SEND_RECLAIM_ADDR
.dw cproHandle1sReclaimingAddr ; CPRO_MODE_RECLAIMING_ADDR
.dw cproHandle1sSendDenyAddr ; CPRO_MODE_SEND_DENY_ADDR
.dw cproHandle1sSendDenyAddr1 ; CPRO_MODE_SEND_DENY_ADDR1
.dw cproHandle1sSendDenyAddr2 ; CPRO_MODE_SEND_DENY_ADDR2
cproHandle1sSendingHaveAddress:
@@ -70,11 +71,24 @@ cproHandle1sNeedAddr_okay:
cproHandle1sSendDenyAddr:
cproHandle1sSendDenyAddr1:
rcall CPRO_SendDenyAddress
brcs cproHandle1sSendDenyAddr_okay
brcs cproHandle1sSendDenyAddr1_okay
rjmp cproAddressSetTimer1s ; could not send, restart timer 1s and retry later
cproHandle1sSendDenyAddr_okay:
cproHandle1sSendDenyAddr1_okay:
ldi r16, CPRO_MODE_SEND_DENY_ADDR2 ; DENY_ADDR sent, send 2nd later
sts cproMode, r16
ldi r18, LOW(CPRO_WAITTIME_SENDDENY2) ; set timeout
ldi r19, HIGH(CPRO_WAITTIME_SENDDENY2) ; set timeout
rjmp cproAddressSetTimer
ret
cproHandle1sSendDenyAddr2:
rcall CPRO_SendDenyAddress
brcs cproHandle1sSendDenyAddr2_okay
rjmp cproAddressSetTimer1s ; could not send, restart timer 1s and retry later
cproHandle1sSendDenyAddr2_okay:
ldi r16, CPRO_MODE_NORMAL ; DENY_ADDR sent, back to normal
sts cproMode, r16
ret