com2w: added support for pin change interrupts on atmega644P

This commit is contained in:
Martin Preuss
2025-11-17 23:00:40 +01:00
parent f8c914538a
commit 520f371560

View File

@@ -70,6 +70,20 @@
.macro M_COM2WSETUPPCICR
inr r16, COM_IRQ_ADDR_CLK ; enable pin change irq for CLK line
ori r16, (1<<COM_IRQ_BIT_CLK)
outr COM_IRQ_ADDR_CLK, r16
inr r16, COM_IRQ_ICR_ADDR ; enable pin change irq in PCICR
ori r16, (1<<COM_IRQ_ICR_BIT)
outr COM_IRQ_ICR_ADDR, R16
ldi r16, (1<<COM_IRQ_IFR_BIT) ; clear pending irq by writing 1 to CLK bit
out COM_IRQ_IFR_ADDR, r16
.endmacro
.dseg
@@ -116,6 +130,9 @@ COM2W_Init:
rcall com2wEnableClkIrq
; enable IRQ
.ifdef COM_IRQ_ICR_ADDR
M_COM2WSETUPPCICR
.else
.ifdef INT0
.if COM_IRQ_BIT_CLK == INT0
M_COM2WSETUPINT0
@@ -125,6 +142,7 @@ COM2W_Init:
.else
M_COM2WSETUPPCI
.endif
.endif
#if 0