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

📄 eint1_vect.s

📁 周立功《ARM与嵌入式系统基础教程》第5章
💻 S
字号:
;****************************************************************************** 
; 文件名:EINT1_VECT.S
; 功能:使用外部中断1进行B1的控制,每当有一次中断时,即取反B1控制口,以便指示中断输入。
;      使用向量中断方式。
; 说明:将跳线器JP9短接,JP4断开,然后短接/断开JP1(使EINT1为低/高电平)。
;****************************************************************************** 
			INCLUDE		LPC2294.INC
			EXPORT  	MAIN
			
VIC_BASE	EQU		0xFFFFF000
				
BEEPCON  	EQU		0x00000080				; P0.7引脚控制B1,低电平蜂鸣

			AREA   	EINT1_VECTC,CODE,READONLY 	
			ENTRY							
		
MAIN 		MSR     CPSR_c, #0x5F			; 切换处理器工作模式,并允许IRQ中断
            LDR		R0,=PINSEL0				
			MOV		R1,#0x20000000			
			STR		R1,[R0]					; 设置管脚连接,P0.14设置为EINT1
			LDR		R0,=IO0DIR				
			LDR		R1,=BEEPCON
			STR		R1,[R0]					; 设置BEEP控制口为输出
			
			LDR		R0,=MEMMAP
    		MOV		R1,#0x03
			STR		R1,[R0]					; REMAP操作(若写到片内FLASH,则不需要REMAP)
			
EINT1_INI	LDR		R0,=EXTMODE
			MOV		R1,#0x02
			STR		R1,[R0]					; 设置EINT1中断为边沿触发模式
			LDR		R0,=EXTPOLAR
			MOV		R1,#0x00				
			STR		R1,[R0]					; 设置EINT1中断为下降沿触发
			LDR		R0,=EXTINT
			MOV		R1,#0x0F
			STR		R1,[R0]					; EXTINT=0x0F 

			LDR		R0,=VIC_BASE
			MOV		R1,#0x00000000
			STR		R1,[R0,#0x0C]			; VICIntSelect=0x00000000
			MOV		R1,#0x2F
			STR		R1,[R0,#0x200]			; VICVectCntl0=0x2F
			LDR		R1,=IRQ_EINT1
			STR		R1,[R0,#0x100]			; VICVectAddr0=(int)IRQ_EINT1
			MOV		R1,#0x00008000
			STR		R1,[R0,#0x10]			; VICIntEnable=0x00008000			
		
WAIT_IRQ	B		WAIT_IRQ	


;******************************************************************************
; 名称:IRQ_EINT1
; 功能:EINT1中断服务程序
; 入口参数:无
; 出口参数:无
; 占用资源:R0、R1
;******************************************************************************
IRQ_EINT1	
			LDR		R0,=IO0SET
			LDR		R1,[R0]					; 读取IO0SET的值
			ANDS	R1,R1,#BEEPCON
			LDREQ	R0,=IO0SET				; 设置R0=IO0SET
			LDRNE	R0,=IO0CLR				; 或设置R0=IO0CLR
			MOV		R1,#BEEPCON
			STR		R1,[R0]
			
			LDR		R0,=EXTINT
			MOV		R1,#0x02
			STR		R1,[R0]					; EXTINT=0x02,清除EINT1中断标志
			
			LDR		R0,=VICVectAddr
			MOV		R1,#0
			STR		R1,[R0]					; VICVectAddr=0						
   			SUBS	PC,LR,#4				; IRQ中断返回
			
			END


⌨️ 快捷键说明

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