www.pudn.com > DC_SpeedCtrl.rar > ISR.asm


.INCLUDE SPCE061A.inc 
.INCLUDE Key.inc 
.INCLUDE Dig.inc 
.INCLUDE DCMotor.inc 
 
.PUBLIC _BREAK 
.PUBLIC _FIQ 
.PUBLIC	_IRQ0 
.PUBLIC _IRQ1 
.PUBLIC _IRQ2 
.PUBLIC _IRQ3 
.PUBLIC _IRQ4 
.PUBLIC _IRQ5 
.PUBLIC _IRQ6 
.PUBLIC _IRQ7 
 
///////////////////////////////////////////////////////////////////////////////////////// 
// Function: Interrupt Service Routine Area 
//      Service for     BREAK, FIQ, IRQ0-IRQ7 
//      User's ISR must hook on here 
/////////////////////////////////////////////////////////////////////////////////////////         
.TEXT 
 
_BREAK:         
	push r1,r5 to [sp] 
	/////-----       BREAK User Code     -----///// 
	/////-----          BREAK End        -----///// 
	pop r1,r5 from [sp]  
reti 
 
 
_FIQ: 
	push r1,r5 to [sp] 
?L_FIQ_PWM: 
	r1 = C_FIQ_PWM 
	test r1, [P_INT_Ctrl] 
	jz ?L_FIQ_TimerA 
	[P_INT_Clear] = r1 
	/////-----     FIQ_PWM User Code     -----///// 
	/////-----        FIQ_PWM End        -----///// 
?L_FIQ_TimerA: 
	r1 = C_FIQ_TMA 
	test r1, [P_INT_Ctrl] 
	jz ?L_FIQ_TimerB 
	[P_INT_Clear] = r1 
	/////-----   FIQ_TimerA User Code    -----///// 
	/////-----      FIQ_TimerA End       -----///// 
?L_FIQ_TimerB: 
	r1 = C_FIQ_TMB 
	test r1, [P_INT_Ctrl] 
	jz ?L_FIQ_Exit 
	[P_INT_Clear] = r1 
	/////-----   FIQ_TimerB User Code    -----///// 
	/////-----      FIQ_TimerB End       -----///// 
?L_FIQ_Exit: 
	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]; 
?L_IRQ3_KEY: 
	r1 = C_IRQ3_KEY 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ3_EXT1 
	[P_INT_Clear] = r1 
	/////-----    IRQ3_KEY User Code     -----///// 
	/////-----       IRQ3_KEY End        -----///// 
?L_IRQ3_EXT1: 
	r1 = C_IRQ3_EXT1 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ3_EXT2 
	[P_INT_Clear] = r1 
	/////-----    IRQ3_EXT1 User Code    -----///// 
	/////-----       IRQ3_EXT1 End       -----///// 
?L_IRQ3_EXT2: 
	r1 = C_IRQ3_EXT2 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ3_Exit 
	[P_INT_Clear] = r1 
	/////-----    IRQ3_EXT2 User Code    -----///// 
	/////-----       IRQ3_EXT2 End       -----///// 
?L_IRQ3_Exit: 
	pop r1,r5 from [sp] 
reti 
 
 
_IRQ4:         
	push r1,r5 to [sp]; 
?L_IRQ4_1KHz: 
	r1 = C_IRQ4_1KHz 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ4_2KHz 
	[P_INT_Clear] = r1 
	/////-----    IRQ4_1KHz User Code    -----///// 
	/////-----       IRQ4_1KHz End       -----///// 
?L_IRQ4_2KHz: 
	r1 = C_IRQ4_2KHz 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ4_4KHz 
	[P_INT_Clear] = r1 
	/////-----    IRQ4_2KHz User Code    -----///// 
	/////-----       IRQ4_2KHz End       -----///// 
?L_IRQ4_4KHz: 
	r1 = C_IRQ4_4KHz 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ4_Exit 
	[P_INT_Clear] = r1 
	/////-----    IRQ4_4KHz User Code    -----///// 
	call F_DIG_Drive 
	call F_DCMotor_Drive 
	/////-----       IRQ4_4KHz End       -----///// 
?L_IRQ4_Exit: 
	pop r1,r5 from [sp] 
reti 
 
 
_IRQ5: 
	push r1,r5 to [sp]; 
?L_IRQ5_2Hz: 
	r1 = C_IRQ5_2Hz 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ5_4Hz 
	[P_INT_Clear] = r1 
	/////-----     IRQ5_2Hz User Code    -----///// 
	/////-----       IRQ5_2Hz End        -----///// 
?L_IRQ5_4Hz: 
	r1 = C_IRQ5_4Hz 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ5_Exit 
	[P_INT_Clear] = r1 
	/////-----     IRQ5_4Hz User Code    -----///// 
	/////-----       IRQ5_4Hz End        -----///// 
?L_IRQ5_Exit: 
	pop r1,r5 from [sp] 
reti 
 
 
_IRQ6: 
	push r1,r5 to [sp]; 
?L_IRQ6_TMB1: 
	r1 = C_IRQ6_TMB1 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ6_TMB2 
	[P_INT_Clear] = r1 
	/////-----    IRQ6_TMB1 User Code    -----///// 
	/////-----      IRQ6_TMB1 End        -----///// 
?L_IRQ6_TMB2: 
	r1 = C_IRQ6_TMB2 
	test r1,[P_INT_Ctrl] 
	jz ?L_IRQ6_Exit 
	[P_INT_Clear] = r1 
	/////-----    IRQ6_TMB2 User Code    -----///// 
	call F_Key_Scan 
	/////-----      IRQ6_TMB2 End        -----///// 
?L_IRQ6_Exit: 
	pop r1,r5 from [sp] 
reti 
 
 
_IRQ7:         
	push r1,r5 to [sp] 
	/////-----       IRQ7_UART User Code     -----///// 
	/////-----          IRQ7_UART End        -----///// 
	pop r1,r5 from [sp]  
reti 
 
 
//========================================================================================         
// End of isr.asm 
//========================================================================================