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

📄 irq.asm

📁 哈工大智能电动车软件的源代码
💻 ASM
字号:


.external _ironnum
.external _ironflag
.external _timenum
.include	hardware.inc
.include	S480.inc
.include	Resource.inc
.text

.public	_FIQ;
_FIQ:
	PUSH	r1,r4 to [sp];
	r1=0x2000;
	test r1,[P_INT_Ctrl];
	jnz L_FIQ_TimerA;
	r1=0x0800;
	test r1,[P_INT_Ctrl];
	jnz L_FIQ_TimerB;
L_FIQ_PWM:
	r1=C_FIQ_PWM;
	[P_INT_Clear]=r1;
	POP R1,R4 from[sp];
	reti;
L_FIQ_TimerA:
	[P_INT_Clear]=r1;
	call F_FIQ_Service_SACM_S480;
	pop r1,r4 from [sp];
	reti;
L_FIQ_TimerB:
	[P_INT_Clear]=r1;
	pop r1,r4 from [sp];
	reti;
.public _IRQ3;
_IRQ3:
	push r1,r2 to [sp]
	int off
	r1=[P_INT_Ctrl]
	cmp r1,0x0100
	jnz  IQR3_EXT2
	//cmp r1,0x0080
	//jz  IQR3_KEY
	
    r2=[_ironnum]
    r2+=1
    [_ironnum]=r2
    r2=1
    [_ironflag]=r2
    cmp r2,4
    jnz  NEXTGO
    call F_Delay5s
    NEXTGO:
    r1=0x0100
    [P_INT_Clear]=r1
    INT FIQ,IRQ
    pop r1,r2 from [sp]
    reti
    
   IQR3_EXT2:
    [P_INT_Clear]=r1
    int FIQ,IRQ
    pop r1,r2 from [sp]
    reti
.public _IRQ5
_IRQ5:
	push r1,r3 to [sp]
	int off
	r1=[P_INT_Ctrl]
	test r1,0x0008
	int fiq,irq
	jnz To2Hz
	r2=[_timenum]
	r2+=1
	[_timenum]=r2
	cmp r2,340
    jnz Irq5End
    r3=[P_IOB_Data]
    r3&=0xe0ff
    [P_IOB_Data]=r3  //小车停止运动
    Irq5End:
    [P_INT_Clear]=r1
    pop r1,r3 from [sp]
    reti
   To2Hz:
    r1=0x0004
    [P_INT_Clear]=r1 
	pop r1,r3 from [sp]
	reti;
	
.code 
.public F_Delay5s
F_Delay5s:
     push r1,r5 to [sp]
	 r1=[P_IOB_Data]
	 r1&=0xe0ff
	 [P_IOB_Data]=r1 // 关电机
    irq off
     r1=28
    LOOPD1:
     r2=0xffff
    LOOPD2: 
     r2-=1
     jnz LOOPD2
     r1-=1
     r3=1
     [_ironflag]=r3
     jnz LOOPD1
     irq on;
     pop r1,r5 from [sp]
     retf;
     
     
.public _F_Delay2s
_F_Delay2s:
     push r1,r5 to [sp]
	 r1=[P_IOB_Data]
	 r1&=0xe0ff
	 [P_IOB_Data]=r1 // 关电机
     r1=10
    LOOP11:
     r2=0xffff
    LOOP22: 
     r2-=1
     jnz LOOP22
     r1-=1
     r3=1
     [_ironflag]=r3
     jnz LOOP11
     pop r1,r5 from [sp]
     retf;

⌨️ 快捷键说明

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