avr: work on simple GUI module to be used by node c02.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user