AVR: More work on address assignment procedure.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user