AVR: More work on address assignment procedure.

This commit is contained in:
Martin Preuss
2023-02-06 21:09:38 +01:00
parent 012e33aea1
commit df70342ff3
3 changed files with 118 additions and 40 deletions

View File

@@ -42,7 +42,9 @@
.equ CPRO_PACKET_DENYADDR_OFFS_ADDRESS = 8
.equ CPRO_WAITTIME_GETADDR = 130
.equ CPRO_WAITTIME_CLAIMADDR = 30
.equ CPRO_WAITTIME_CLAIMADDR = 17
.equ CPRO_WAITTIME_RECLAIMADDR = 10
; current mode of operation
.equ CPRO_MODE_NORMAL = 0 ; normal operation
@@ -51,6 +53,7 @@
.equ CPRO_MODE_CLAIMING_ADDR2 = 21 ; CLAIM_ADDRESS sent, 2nd try
.equ CPRO_MODE_CLAIMING_ADDR3 = 22 ; CLAIM_ADDRESS sent, 3rd try
.equ CPRO_MODE_SENDING_HAVE_ADDRESS = 30 ; waiting for our turn to send HAVE_ADDRESS packet
.equ CPRO_MODE_RECLAIMING_ADDR = 40 ; CLAIM_ADDRESS with the previously used address sent after bootup
@@ -111,8 +114,12 @@ CPRO_OnEverySecond_l4:
rjmp cproHandle1sClaimingAddr12
CPRO_OnEverySecond_l5:
cpi r17, CPRO_MODE_CLAIMING_ADDR3
brne CPRO_OnEverySecond_done
brne CPRO_OnEverySecond_l6
rjmp cproHandle1sClaimingAddr3
CPRO_OnEverySecond_l6:
cpi r17, CPRO_MODE_RECLAIMING_ADDR
brne CPRO_OnEverySecond_done
rjmp cproHandle1sReclaimingAddr
CPRO_OnEverySecond_done:
ret
@@ -388,6 +395,7 @@ CPRO_EnqueueValue:
push xh
push xl
mov r16, r6
ldi r17, CPRO_PAYLOAD_FLAGS_SECONDS | (6<<CPRO_PAYLOAD_FLAGS_SHIFT_NUM)
ldi r18, CPRO_CMD_VALUE
rcall cproBeginMsgWithVariablePayload ; (R3, R4, R16, R17, R18, R19, R20, R21, X)