tried early reading ports (still doesn't work for 2nd port).
This commit is contained in:
@@ -197,21 +197,27 @@ COM2WI_Init:
|
||||
COM2WI_Timer1Isr:
|
||||
push r15
|
||||
in r15, SREG
|
||||
push r16
|
||||
push r17
|
||||
push r18
|
||||
push yl
|
||||
push yh
|
||||
push zl
|
||||
push zh
|
||||
rcall COM2WI_HandleTimerIrq ; (r16, r17, r18, Y, Z)
|
||||
pop zh
|
||||
pop zl
|
||||
pop yh
|
||||
pop yl
|
||||
pop r18
|
||||
pop r17
|
||||
pop r16
|
||||
push r1
|
||||
push r2
|
||||
inr r1, COM_CLK_INPUT
|
||||
inr r2, COM_DATA_INPUT
|
||||
push r16
|
||||
push r17
|
||||
push r18
|
||||
push yl
|
||||
push yh
|
||||
push zl
|
||||
push zh
|
||||
rcall COM2WI_HandleTimerIrq ; (r16, r17, r18, Y, Z)
|
||||
pop zh
|
||||
pop zl
|
||||
pop yh
|
||||
pop yl
|
||||
pop r18
|
||||
pop r17
|
||||
pop r16
|
||||
pop r2
|
||||
pop r1
|
||||
out SREG, r15
|
||||
pop r15
|
||||
reti
|
||||
@@ -509,7 +515,8 @@ com2wiIrqJumpTable:
|
||||
; @clobbers r16, r18
|
||||
|
||||
com2wiIrqStateIdle:
|
||||
inr r16, COM_CLK_INPUT
|
||||
mov r16, r1
|
||||
; inr r16, COM_CLK_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
|
||||
and r16, r18
|
||||
brne com2wiIrqStateIdle_ret
|
||||
@@ -649,7 +656,8 @@ com2wiIrqStateWBitHoldClockHigh_ret:
|
||||
; @clobbers r16
|
||||
|
||||
com2wiIrqStateRWaitForClockHigh:
|
||||
inr r16, COM_CLK_INPUT
|
||||
mov r16, r1
|
||||
; inr r16, COM_CLK_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
|
||||
and r16, r18
|
||||
brne com2wiIrqStateRWaitForClockHigh_isHi
|
||||
@@ -658,7 +666,8 @@ com2wiIrqStateRWaitForClockHigh:
|
||||
; time's up, enter skipping mode
|
||||
rjmp com2wiEnterStateSWaitForClockHigh
|
||||
com2wiIrqStateRWaitForClockHigh_isHi:
|
||||
inr r16, COM_DATA_INPUT
|
||||
mov r16, r2
|
||||
; inr r16, COM_DATA_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_DATA
|
||||
and r16, r18
|
||||
clc
|
||||
@@ -728,7 +737,8 @@ com2wiIrqStateRWaitForClockHigh_ret:
|
||||
; @clobbers r16
|
||||
|
||||
com2wiIrqStateRWaitForClockLow:
|
||||
inr r16, COM_CLK_INPUT
|
||||
mov r16, r1
|
||||
; inr r16, COM_CLK_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
|
||||
and r16, r18
|
||||
breq com2wiIrqStateRWaitForClockLow_isLo
|
||||
@@ -752,7 +762,8 @@ com2wiIrqStateRWaitForClockLow_ret:
|
||||
; @clobbers r16
|
||||
|
||||
com2wiIrqStateSWaitForClockHigh:
|
||||
inr r16, COM_CLK_INPUT
|
||||
mov r16, r1
|
||||
; inr r16, COM_CLK_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
|
||||
and r16, r18
|
||||
breq com2wiIrqStateSWaitForClockHigh_ret ; jmp if still low
|
||||
@@ -771,7 +782,8 @@ com2wiIrqStateSWaitForClockHigh_ret:
|
||||
; @clobbers r16, r18
|
||||
|
||||
com2wiIrqStateSWaitForClockLow:
|
||||
inr r16, COM_CLK_INPUT
|
||||
mov r16, r1
|
||||
; inr r16, COM_CLK_INPUT
|
||||
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
|
||||
and r16, r18
|
||||
brne com2wiIrqStateSWaitForClockLow_isHi
|
||||
|
||||
Reference in New Issue
Block a user