avr: work on simple GUI module to be used by node c02.

This commit is contained in:
Martin Preuss
2025-11-03 17:23:40 +01:00
parent b4fee78ad8
commit e58e9b846c
38 changed files with 1951 additions and 2422 deletions

View File

@@ -46,6 +46,30 @@
.macro M_COM2WSETUPINT0
inr r16, MCUCR
cbr r16, (1<<ISC01) | (1<<ISC00)
sbr r16, (1<<ISC01) | (0<<ISC00) ; falling edge of ATTN
outr MCUCR, r16
; sbr r16, (0<<ISC01) | (0<<ISC00) ; low level triggers
inr r16, COM_IRQ_ADDR_CLK ; enable irq for ATTN line
sbr r16, (1<<COM_IRQ_BIT_CLK)
outr COM_IRQ_ADDR_CLK, r16
.endmacro
.macro M_COM2WSETUPPCI
sbi COM_IRQ_ADDR_CLK, COM_IRQ_BIT_CLK ; enable pin change irq for CLK line
in r16, GIMSK ; enable pin change irq PCIE0 or PCIE1
ori r16, (1<<COM_IRQ_GIMSK_CLK)
out GIMSK, R16
ldi r16, (1<<COM_IRQ_GIFR_CLK) ; clear pending irq by writing 1 to CLK bit
out GIFR, r16
.endmacro
.dseg
@@ -91,6 +115,19 @@ COM2W_Init:
; setup pin-change interrupt for CLK
rcall com2wEnableClkIrq
; enable IRQ
.ifdef INT0
.if COM_IRQ_BIT_CLK == INT0
M_COM2WSETUPINT0
.else
M_COM2WSETUPPCI
.endif
.else
M_COM2WSETUPPCI
.endif
#if 0
inr r16, COM_IRQ_ADDR_CLK
sbr r16, (1<<COM_IRQ_BIT_CLK) ; enable pin change irq for ATTN line
outr COM_IRQ_ADDR_CLK, r16
@@ -100,6 +137,7 @@ COM2W_Init:
outr GIMSK, r16
ldi r16, (1<<COM_IRQ_GIFR_CLK) ; clear pending irq by writing 1 to ATTN bit
outr GIFR, r16
#endif
ret
; @end