avr: added comonuart1.

This commit is contained in:
Martin Preuss
2025-06-29 22:32:43 +02:00
parent cfc7dc6320
commit 6383d18e0e
6 changed files with 734 additions and 26 deletions

View File

@@ -38,8 +38,10 @@ ComOnUart0_Init:
std Y+NET_IFACE_OFFS_IFACENUM, r16
sbi COM_IRQ_ADDR_ATTN, COM_IRQ_BIT_ATTN ; enable pin change irq for ATTN line
in r16, GIMSK ; enable pin change irq PCIE0 or PCIE1
ori r16, (1<<COM_IRQ_GIMSK_ATTN)
sbr r16, (1<<COM_IRQ_GIMSK_ATTN)
out GIMSK, R16
ldi r16, (1<<COM_IRQ_GIFR_ATTN) ; clear pending irq by writing 1 to ATTN bit
out GIFR, r16
@@ -168,27 +170,7 @@ ComOnUart0_TxCharIsr:
ComOnUart0_AttnChangeIsr:
push r15
in r15, SREG
push r16
push r17
push r18
push r24
push r25
push xl
push xh
push yl
push yh
ldi yl, LOW(comOnUart0_iface)
ldi yh, HIGH(comOnUart0_iface)
rcall comOnUart0ActOnAttn ; (R16, R17, R24, R25, X)
pop yh
pop yl
pop xh
pop xl
pop r25
pop r24
pop r18
pop r17
pop r16
rcall ComOnUart0_HandleAttnChange
out SREG, r15
pop r15
reti
@@ -196,6 +178,38 @@ ComOnUart0_AttnChangeIsr:
; ---------------------------------------------------------------------------
; @routine ComOnUart0_HandleAttnChange @global
;
; @clobbers none
ComOnUart0_HandleAttnChange:
push r16
push r17
push r18
push r24
push r25
push xl
push xh
push yl
push yh
ldi yl, LOW(comOnUart0_iface)
ldi yh, HIGH(comOnUart0_iface)
rcall comOnUart0ActOnAttn ; (R16, R17, R24, R25, X)
pop yh
pop yl
pop xh
pop xl
pop r25
pop r24
pop r18
pop r17
pop r16
ret
; @end
; ---------------------------------------------------------------------------
; @routine comOnUart0ActOnAttn @global
;
@@ -515,7 +529,7 @@ comOnUart0RunMsgReceived:
comOnUart0Init:
.ifdef COM_ATTN_PUE
lds r16, COM_ATTN_PUE
cbr r16, COM_ATTN_PIN ; disable pullup on ATTN
cbr r16, (1<<COM_ATTN_PIN) ; disable pullup on ATTN
sts COM_ATTN_PUE, r16
.endif
rcall comOnUart0SetAttnInput