avr: fixed timer usage in COM2 and COM2_PROTO module.

This commit is contained in:
Martin Preuss
2024-09-18 20:24:32 +02:00
parent a1a64fec42
commit 91752156f2
4 changed files with 21 additions and 15 deletions

View File

@@ -97,7 +97,7 @@ CPRO_Address_Init:
; setup timer for address setup (after 10s) ; setup timer for address setup (after 10s)
ldi r16, CPRO_MODE_NOADDRESS ldi r16, CPRO_MODE_NOADDRESS
sts cproMode, r16 sts cproMode, r16
ldi r18, 10 ldi r18, 100
ldi r19, 0 ldi r19, 0
rcall cproAddressSetTimer rcall cproAddressSetTimer
ret ret
@@ -157,7 +157,7 @@ CPRO_StartGetAddrProcedure:
; REGS: r18, r19 ; REGS: r18, r19
; ;
cproAddressSetTimer1s: cproAddressSetTimer1s:
ldi r18, 1 ldi r18, 10
ldi r19, 0 ldi r19, 0
rjmp cproAddressSetTimer rjmp cproAddressSetTimer

View File

@@ -64,8 +64,8 @@ cproHandle1sNeedAddr:
cproHandle1sNeedAddr_okay: cproHandle1sNeedAddr_okay:
ldi r16, CPRO_MODE_GETADDRSTARTED ; wait for incoming messages ldi r16, CPRO_MODE_GETADDRSTARTED ; wait for incoming messages
sts cproMode, r16 sts cproMode, r16
ldi r18, CPRO_WAITTIME_GETADDR ; set timeout ldi r18, LOW(CPRO_WAITTIME_GETADDR) ; set timeout
clr r19 ldi r19, HIGH(CPRO_WAITTIME_GETADDR) ; set timeout
rjmp cproAddressSetTimer rjmp cproAddressSetTimer
@@ -89,8 +89,8 @@ cproHandle1sSendReclaimAddr:
cproHandle1sSendReclaimAddr_okay: cproHandle1sSendReclaimAddr_okay:
ldi r16, CPRO_MODE_RECLAIMING_ADDR ldi r16, CPRO_MODE_RECLAIMING_ADDR
sts cproMode, r16 sts cproMode, r16
ldi r18, CPRO_WAITTIME_RECLAIMADDR ldi r18, LOW(CPRO_WAITTIME_RECLAIMADDR)
clr r19 ldi r19, HIGH(CPRO_WAITTIME_RECLAIMADDR)
rjmp cproAddressSetTimer ; prepare time for next stage rjmp cproAddressSetTimer ; prepare time for next stage
@@ -117,8 +117,8 @@ cproHandle1sSendClaimAddr1:
cproHandle1sClaimSend_okay: ; goto nex stage cproHandle1sClaimSend_okay: ; goto nex stage
ldi r16, CPRO_MODE_CLAIMING_ADDR1 ldi r16, CPRO_MODE_CLAIMING_ADDR1
sts cproMode, r16 sts cproMode, r16
ldi r18, CPRO_WAITTIME_CLAIMADDR ldi r18, LOW(CPRO_WAITTIME_CLAIMADDR)
clr r19 ldi r19, HIGH(CPRO_WAITTIME_CLAIMADDR)
rjmp cproAddressSetTimer ; prepare timer for next stage rjmp cproAddressSetTimer ; prepare timer for next stage
@@ -132,8 +132,8 @@ cproHandle1sClaimingAddr12_okay:
lds r16, cproMode lds r16, cproMode
inc r16 inc r16
sts cproMode, r16 sts cproMode, r16
ldi r18, CPRO_WAITTIME_CLAIMADDR ldi r18, LOW(CPRO_WAITTIME_CLAIMADDR)
clr r19 ldi r19, HIGH(CPRO_WAITTIME_CLAIMADDR)
rjmp cproAddressSetTimer ; prepare time for next stage rjmp cproAddressSetTimer ; prepare time for next stage

View File

@@ -86,7 +86,13 @@ cproHandleNeedAddr:
sts cproMode, r24 sts cproMode, r24
lds r24, com2Address lds r24, com2Address
clr r25 clr r25
adiw r25:r24, 3 lsl r24 ; *2
rol r25
lsl r24 ; *4
rol r25
lsl r24 ; *8
rol r25
adiw r25:r24, 30 ; add 3 secs
mov r18, r24 mov r18, r24
mov r19, r25 mov r19, r25
rjmp cproAddressSetTimer rjmp cproAddressSetTimer

View File

@@ -73,10 +73,10 @@
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
; wait times for address protocol ; wait times for address protocol
.equ CPRO_WAITTIME_INITIAL = 10 .equ CPRO_WAITTIME_INITIAL = 100
.equ CPRO_WAITTIME_GETADDR = 130 .equ CPRO_WAITTIME_GETADDR = 1300
.equ CPRO_WAITTIME_CLAIMADDR = 17 .equ CPRO_WAITTIME_CLAIMADDR = 170
.equ CPRO_WAITTIME_RECLAIMADDR = 10 .equ CPRO_WAITTIME_RECLAIMADDR = 100
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------