TOP

SONIX单片机有没有中断优先顺序?如何设置?

SONIX MCU系统,硬体没有设计中断的优先顺序。但实际应用的过程中,可能需要应用中断优先顺序,可以根据SONIX MCU的特点用软体来实现。 
对各中断进行优先权的设置,并根据IEN和IRQ的状态决定系统是否回应中断请求。用户必须在中断向量里检查中断控制位元和中断请求标志位元,因此可将具有高优先顺序的中断控制位元和中断请求标志位元放在前面检测。 

举例说明:

ISR: 
;------------Save ACC--------------------------
b0xchA,AccBuf;B0xch instruction do not change C,Z flag
b0movA,PFLAG 
B0MOVPflagBuf,A 
;---------interrupt first-------------------------
INT0CHK:
B0BTS1FT0IEN
JMPINTTC0CHK
B0BTS0FT0IRQ
JMPINTT0
INTTC0CHK:  ; Check TC0 interrupt request
B0BTS1FTC0IEN; Check TC0IEN
JMPISR90; Jump to exit of IRQ
B0BTS0FTC0IRQ; Check TC0IRQ
JMPINTTC0; Jump to TC0 interrupt service routine
;-------------exit interrupt-------------------------
ISR90:  
B0MOVA, PflagBuf
B0MOVPFLAG,A;Restore the PFlag
B0XCHA,AccBuf;Restore the Reg. A
  ;B0xch instruction do not change C,Z flag
RETI ;Exit the interrupt routine
;---------------------t0-----------------------------
INTT0:  
B0BCLRFT0IRQ
INTT090:  
JMPISR90
;---------------------tc0-----------------------------
INTTC0:  
B0BCLRFTC0IRQ
INTTC090:  
JMPISR90