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,6 +197,10 @@ COM2WI_Init:
COM2WI_Timer1Isr: COM2WI_Timer1Isr:
push r15 push r15
in r15, SREG in r15, SREG
push r1
push r2
inr r1, COM_CLK_INPUT
inr r2, COM_DATA_INPUT
push r16 push r16
push r17 push r17
push r18 push r18
@@ -212,6 +216,8 @@ COM2WI_Timer1Isr:
pop r18 pop r18
pop r17 pop r17
pop r16 pop r16
pop r2
pop r1
out SREG, r15 out SREG, r15
pop r15 pop r15
reti reti
@@ -509,7 +515,8 @@ com2wiIrqJumpTable:
; @clobbers r16, r18 ; @clobbers r16, r18
com2wiIrqStateIdle: com2wiIrqStateIdle:
inr r16, COM_CLK_INPUT mov r16, r1
; inr r16, COM_CLK_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
and r16, r18 and r16, r18
brne com2wiIrqStateIdle_ret brne com2wiIrqStateIdle_ret
@@ -649,7 +656,8 @@ com2wiIrqStateWBitHoldClockHigh_ret:
; @clobbers r16 ; @clobbers r16
com2wiIrqStateRWaitForClockHigh: com2wiIrqStateRWaitForClockHigh:
inr r16, COM_CLK_INPUT mov r16, r1
; inr r16, COM_CLK_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
and r16, r18 and r16, r18
brne com2wiIrqStateRWaitForClockHigh_isHi brne com2wiIrqStateRWaitForClockHigh_isHi
@@ -658,7 +666,8 @@ com2wiIrqStateRWaitForClockHigh:
; time's up, enter skipping mode ; time's up, enter skipping mode
rjmp com2wiEnterStateSWaitForClockHigh rjmp com2wiEnterStateSWaitForClockHigh
com2wiIrqStateRWaitForClockHigh_isHi: com2wiIrqStateRWaitForClockHigh_isHi:
inr r16, COM_DATA_INPUT mov r16, r2
; inr r16, COM_DATA_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_DATA ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_DATA
and r16, r18 and r16, r18
clc clc
@@ -728,7 +737,8 @@ com2wiIrqStateRWaitForClockHigh_ret:
; @clobbers r16 ; @clobbers r16
com2wiIrqStateRWaitForClockLow: com2wiIrqStateRWaitForClockLow:
inr r16, COM_CLK_INPUT mov r16, r1
; inr r16, COM_CLK_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
and r16, r18 and r16, r18
breq com2wiIrqStateRWaitForClockLow_isLo breq com2wiIrqStateRWaitForClockLow_isLo
@@ -752,7 +762,8 @@ com2wiIrqStateRWaitForClockLow_ret:
; @clobbers r16 ; @clobbers r16
com2wiIrqStateSWaitForClockHigh: com2wiIrqStateSWaitForClockHigh:
inr r16, COM_CLK_INPUT mov r16, r1
; inr r16, COM_CLK_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
and r16, r18 and r16, r18
breq com2wiIrqStateSWaitForClockHigh_ret ; jmp if still low breq com2wiIrqStateSWaitForClockHigh_ret ; jmp if still low
@@ -771,7 +782,8 @@ com2wiIrqStateSWaitForClockHigh_ret:
; @clobbers r16, r18 ; @clobbers r16, r18
com2wiIrqStateSWaitForClockLow: com2wiIrqStateSWaitForClockLow:
inr r16, COM_CLK_INPUT mov r16, r1
; inr r16, COM_CLK_INPUT
ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK ldd r18, Y+COM2WI_IFACE_OFFS_PINMASK_CLK
and r16, r18 and r16, r18
brne com2wiIrqStateSWaitForClockLow_isHi brne com2wiIrqStateSWaitForClockLow_isHi