com2w1: follow changes in com2w0.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user