SN8P275X Series
8-bit micro-controller build-in 12-bit ADC
SONiX TECHNOLOGY CO., LTD
Page 69
Version 0.7
6.6 EXTERNAL INTERRUPT OPERATION (INT0~INT2)
Sonix provides 3 sets external interrupt sources in the micro-controller. INT0, INT1 and INT2 are external interrupt
trigger sources and build in edge trigger configuration function. When the external edge trigger occurs, the external
interrupt request flag will be set to “1” when the external interrupt control bit enabled. If the external interrupt control bit
is disabled, the external interrupt request flag won’t active when external edge trigger occurrence. When external
interrupt control bit is enabled and external interrupt edge trigger is occurring, the program counter will jump to the
interrupt vector (ORG 8) and execute interrupt service routine.
The external interrupt builds in wake-up latch function. That means when the system is triggered wake-up from power
down mode, the wake-up source is external interrupt source (P0.0, P0.1 or P0.2), and the trigger edge direction
matches interrupt edge configuration, the trigger edge will be latched, and the system executes interrupt service routine
fist after wake-up.
0BFH
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PEDGE
-
-
P02G1 P02G0 P01G1 P01G0 P00G1 P00G0
Read/Write -
-
R/W R/W R/W R/W R/W R/W
After
reset
- - 0 0 0 0 0 0
Bit[5:4]
P02G[1:0]:
INT2 edge trigger select bits.
00 = reserved,
01 = rising edge,
10 = falling edge,
11 = rising/falling bi-direction.
Bit[3:2]
P01G[1:0]:
INT1 edge trigger select bits.
00 = reserved,
01 = rising edge,
10 = falling edge,
11 = rising/falling bi-direction.
Bit[1:0]
P00G[1:0]:
INT0 edge trigger select bits.
00 = reserved,
01 = rising edge,
10 = falling edge,
11 = rising/falling bi-direction.
Example: Setup INT0 interrupt request and bi-direction edge trigger.
MOV
A,
#98H
B0MOV
PEDGE, A
; Set INT0 interrupt trigger as bi-direction edge.
B0BSET
FP00IEN
;
Enable
INT0 interrupt service
B0BCLR
FP00IRQ
; Clear INT0 interrupt request flag
B0BSET
FGIE
; Enable GIE
Example: INT0 interrupt service routine.
ORG
8
; Interrupt vector
JMP
INT_SERVICE
INT_SERVICE:
…
; Push routine to save ACC and PFLAG to buffers.
B0BTS1
FP00IRQ
; Check P00IRQ
JMP
EXIT_INT
; P00IRQ = 0, exit interrupt vector
B0BCLR
FP00IRQ
; Reset P00IRQ
…
; INT0 interrupt service routine
EXIT_INT:
…
; Pop routine to load ACC and PFLAG from buffers.
RETI
; Exit interrupt vector