tried early reading ports (still doesn't work for 2nd port).

This commit is contained in:
Martin Preuss
2025-09-09 01:01:43 +02:00
parent 0dc9f0330c
commit 3ea7170473

View File

@@ -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