com2w1: follow changes in com2w0.

This commit is contained in:
Martin Preuss
2025-07-21 18:25:17 +02:00
parent 66b298d977
commit 2b25fed2cd

View File

@@ -181,6 +181,7 @@ com2w1DataSetLow:
; ---------------------------------------------------------------------------
; @routine com2w1ReadNextBit
;
; @param r17 data from COM_DATAn_INPUT
; @clobbers r16, r17, r18, r20, r22
com2w1ReadNextBit:
@@ -188,7 +189,6 @@ com2w1ReadNextBit:
; rcall com2w1WaitForClockHighMulti5Us ; (R20, R22)
; brcc com2w1ReadNextBit_end
; clock is high now, read bit
inr r17, COM_DATA1_INPUT
; reset read timer (for leaving skipping mode)
clr r16
std Y+NET_IFACE_OFFS_READTIMER, r16
@@ -566,8 +566,11 @@ COM2W1_ClkChangeIsr:
push r15
in r15, SREG
push r16
push r17
inr r16, COM_CLK1_INPUT ; read clk state early
inr r17, COM_DATA1_INPUT ; read data state early
rcall COM2W1_HandleClockInterrupt
pop r17
pop r16
out SREG, r15
pop r15
@@ -580,6 +583,7 @@ COM2W1_ClkChangeIsr:
; @routine COM2W1_HandleClockInterrupt @global
;
; @param r16 data from COM_CLKn_INPUT
; @param r17 data from COM_DATAn_INPUT
; @clobbers none
COM2W1_HandleClockInterrupt:
@@ -609,20 +613,30 @@ COM2W1_HandleClockInterrupt:
; @routine com2w1ActOnClock
;
; @param r16 data from COM_CLKn_INPUT
; @param r17 data from COM_DATAn_INPUT
; @clobbers r16 (r17, r18, X)
com2w1ActOnClock:
andi r16, (1<<COM_CLK1_PIN)
brne com2w1ActOnClock_clockHigh
; clock low
ldd r17, Y+COM2W_IFACE_OFFS_MODE
cpi r17, COM2W_MODE_IDLE
brne com2w1ActOnClock_end
ldd r18, Y+COM2W_IFACE_OFFS_MODE
cpi r18, COM2W_MODE_IDLE
breq com2w1ActOnClock_startReading
cpi r18, COM2W_MODE_SKIPPING
breq com2w1ActOnClock_skipping
rjmp com2w1ActOnClock_end
com2w1ActOnClock_skipping:
; ldd r18, Y+COM2W_IFACE_OFFS_MODECOUNTER
; cpi r18, COM2W_SKIPPING_MAXMODECOUNTER
; brcc com2w1ActOnClock_startReading
rjmp com2w1ActOnClock_end
com2w1ActOnClock_startReading:
rcall com2wStartReading ; (r16, r17, X)
rjmp com2w1ActOnClock_end
com2w1ActOnClock_clockHigh:
ldd r17, Y+COM2W_IFACE_OFFS_MODE
cpi r17, COM2W_MODE_READING
ldd r18, Y+COM2W_IFACE_OFFS_MODE
cpi r18, COM2W_MODE_READING
brne com2w1ActOnClock_end
push r20