⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.asm

📁 羚羊语音播放
💻 ASM
字号:
.include hardware.inc

.external F_FIQ_Service_SACM_S480

/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service Routine Area
//      Service for     BREAK, FIQ, IRQ0-IRQ7
//      User's ISR must hook on here
/////////////////////////////////////////////////////////////////////////////////////////        
.TEXT

.public _BREAK
.public _FIQ
.public	_IRQ0
.public _IRQ1
.public _IRQ2
.public _IRQ3
.public _IRQ4
.public _IRQ5
.public _IRQ6
.public _IRQ7

_BREAK:        
		PUSH R1,R5 to [sp]
	/////-----       BREAK User Code     -----/////
	/////-----          BREAK End        -----/////
		POP R1,R5 from [sp] 
		RETI

_FIQ:
		push R1,R5 to [sp];		
		R1 = C_FIQ_TMA;
		test R1,[P_INT_Ctrl];
		jnz L_FIQ_TimerA;
		R1 = C_FIQ_TMB;
		test R1,[P_INT_Ctrl];
		jnz L_FIQ_TimerB;			
L_FIQ_PWM:
		R1 = C_FIQ_PWM;
		[P_INT_Clear] = R1;
	/////-----     FIQ_PWM User Code     -----/////
	/////-----        FIQ_PWM End        -----/////
		POP R1,R5 from[sp];
		reti;
L_FIQ_TimerA:
		R1 = C_FIQ_TMA;
		[P_INT_Clear] = R1;
	/////-----   FIQ_TimerA User Code    -----/////
		call F_FIQ_Service_SACM_S480
	/////-----      FIQ_TimerA End       -----/////
		pop R1,R5 from [sp];
		reti;
L_FIQ_TimerB:
		R1 = C_FIQ_TMB;
		[P_INT_Clear] = R1;
	/////-----   FIQ_TimerB User Code    -----/////
	/////-----      FIQ_TimerB End       -----/////
		pop R1,R5 from [sp];
		reti;

_IRQ0:        
		PUSH R1,R5 to [sp]
		R1 = C_IRQ0_PWM;
		[P_INT_Clear] = R1;
	/////-----     IRQ0_PWM User Code    -----/////
	/////-----        IRQ0_PWM End       -----/////
		POP R1,R5 from [sp] 
		RETI

_IRQ1:        
		PUSH R1,R5 to [sp]
		R1 = C_IRQ1_TMA;
		[P_INT_Clear] = R1;
	/////-----   IRQ1_TimerA User Code   -----/////
	/////-----      IRQ1_TimerA End      -----/////
		POP R1,R5 from [sp] 
		RETI

_IRQ2:        
        PUSH R1,R5 TO [SP]
		R1 = C_IRQ2_TMB;
		[P_INT_Clear] = R1;
	/////-----   IRQ2_TimerB User Code   -----/////
	/////-----      IRQ2_TimerB End      -----/////
   		POP R1,R5 FROM [SP]
        RETI

_IRQ3:
		PUSH R1,R5 to [sp];
		R1 = C_IRQ3_EXT1;
		test R1,[P_INT_Ctrl];
		jnz L_IRQ3_EXT1;
		R1 = C_IRQ3_EXT2;
		test R1,[P_INT_Ctrl];
		jnz L_IRQ3_EXT2;			
L_IRQ3_KEY:
		R1 = C_IRQ3_KEY;
		[P_INT_Clear] = R1;
	/////-----    IRQ3_KEY User Code     -----/////
	/////-----       IRQ3_KEY End        -----/////
   		POP R1,R5 FROM [SP]
        RETI
L_IRQ3_EXT1:
		R1 = C_IRQ3_EXT1;
		[P_INT_Clear] = R1;
	/////-----    IRQ3_EXT1 User Code    -----/////
	/////-----       IRQ3_EXT1 End       -----/////
   		POP R1,R5 FROM [SP]
        RETI
L_IRQ3_EXT2:
		R1 = C_IRQ3_EXT2;
		[P_INT_Clear] = R1;
	/////-----    IRQ3_EXT2 User Code    -----/////
	/////-----       IRQ3_EXT2 End       -----/////
   		POP R1,R5 FROM [SP]
        RETI

_IRQ4:        
        PUSH R1,R5 TO [SP]
        R1 = C_IRQ4_2KHz
        test R1,[P_INT_Ctrl]
        jnz L_IRQ4_2KHz
		R1 = C_IRQ4_4KHz
        test R1,[P_INT_Ctrl]
        jnz L_IRQ4_4KHz
L_IRQ4_1KHz:
        R1 = C_IRQ4_1KHz;  
        [P_INT_Clear] = R1
	/////-----    IRQ4_1KHz User Code    -----/////
	/////-----       IRQ4_1KHz End       -----/////
        POP R1,R5 FROM [SP]
        RETI
L_IRQ4_2KHz:
        R1 = C_IRQ4_2KHz;  
        [P_INT_Clear] = R1
	/////-----    IRQ4_2KHz User Code    -----/////
	/////-----       IRQ4_2KHz End       -----/////
        POP R1,R5 FROM [SP]
        RETI
L_IRQ4_4KHz:
        R1 = C_IRQ4_4KHz;  
        [P_INT_Clear] = R1
	/////-----    IRQ4_4KHz User Code    -----/////
	/////-----       IRQ4_4KHz End       -----/////
        POP R1,R5 FROM [SP]
        RETI

_IRQ5:
		PUSH R1,R5 to [sp]
        R1 = C_IRQ5_4Hz
        test R1,[P_INT_Ctrl]
        jnz L_IRQ5_4Hz
L_IRQ5_2Hz:
        R1 = C_IRQ5_2Hz;
        [P_INT_Clear] = R1
	/////-----     IRQ5_2Hz User Code    -----/////
	/////-----       IRQ5_2Hz End        -----/////
        POP R1,R5 FROM [SP]
        RETI
L_IRQ5_4Hz:
        R1 = C_IRQ5_4Hz;
        [P_INT_Clear] = R1
	/////-----     IRQ5_4Hz User Code    -----/////
	/////-----       IRQ5_4Hz End        -----/////
        POP R1,R5 FROM [SP]
        RETI

_IRQ6:        
		PUSH R1,R5 to [sp]
		R1 = C_IRQ6_TMB2;
		test R1,[P_INT_Ctrl]
		jnz L_IRQ6_TMB2
L_IRQ6_TMB1:
        R1 = C_IRQ6_TMB1;
        [P_INT_Clear] = R1
	/////-----    IRQ6_TMB1 User Code    -----/////
	/////-----      IRQ6_TMB1 End        -----/////
        POP R1,R5 FROM [SP]
        RETI
L_IRQ6_TMB2:
        R1 = C_IRQ6_TMB2;
        [P_INT_Clear] = R1
	/////-----    IRQ6_TMB2 User Code    -----/////
	/////-----      IRQ6_TMB2 End        -----/////
        POP R1,R5 FROM [SP]
        RETI

_IRQ7:        
		PUSH R1,R5 to [sp]
		POP R1,R5 from [sp] 
		RETI

//========================================================================================        
// End of isr.asm
//========================================================================================
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -