tried early reading ports (still doesn't work for 2nd port).
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user