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

📄 exti.txt

📁 STM32+ov7670
💻 TXT
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 481]
; commandline ArmCC [--debug -c --asm --interleave -o.\OBJ\exti.o --depend=.\OBJ\exti.d --cpu=Cortex-M3 --apcs=interwork -O0 -I..\Demo -I.\HARDWARE\EXTI -I.\HARDWARE\KEY -I.\HARDWARE\LCD -I.\HARDWARE\LED -I.\HARDWARE\TIMER -I.\HARDWARE\WDG -I.\SYSTEM\delay -I.\SYSTEM\sys -I.\SYSTEM\usart -I.\USER -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\OBJ\exti.crf HARDWARE\EXTI\exti.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  EXTI0_IRQHandler PROC
;;;13     //外部中断0服务程序
;;;14     void EXTI0_IRQHandler(void)
000000  4770              BX       lr
;;;15     {
;;;16     	/*delay_ms(10);//消抖
;;;17     	if(KEY2==1)	 //按键2
;;;18     	{
;;;19     		LED0=!LED0;
;;;20     		LED1=!LED1;	
;;;21     	}		 
;;;22     	EXTI->PR=1<<0;  //清除LINE0上的中断标志位  */
;;;23     }
;;;24     
                          ENDP

                  EXTI15_10_IRQHandler PROC
;;;26     unsigned char VsyncCnt	= 0;
;;;27     void EXTI15_10_IRQHandler(void)
000002  f44f5000          MOV      r0,#0x2000
;;;28     {			
;;;29     	EXTI->PR=1<<13;     //清除LINE13上的中断标志位  
000006  4923              LDR      r1,|L1.148|
000008  6008              STR      r0,[r1,#0]
;;;30     	if(VsyncCnt < 2)
00000a  4823              LDR      r0,|L1.152|
00000c  7800              LDRB     r0,[r0,#0]  ; VsyncCnt
00000e  2802              CMP      r0,#2
000010  da04              BGE      |L1.28|
;;;31     	{
;;;32     		VsyncCnt ++;
000012  4821              LDR      r0,|L1.152|
000014  7800              LDRB     r0,[r0,#0]  ; VsyncCnt
000016  1c40              ADDS     r0,r0,#1
000018  491f              LDR      r1,|L1.152|
00001a  7008              STRB     r0,[r1,#0]
                  |L1.28|
;;;33     	}
;;;34     	if(VsyncCnt == 1)
00001c  481e              LDR      r0,|L1.152|
00001e  7800              LDRB     r0,[r0,#0]  ; VsyncCnt
000020  2801              CMP      r0,#1
000022  d107              BNE      |L1.52|
;;;35     	{
;;;36     		FIFO_WEN_H;						//场同步有效后打开FIFO写使能			
000024  481d              LDR      r0,|L1.156|
000026  6800              LDR      r0,[r0,#0]
000028  f4407080          ORR      r0,r0,#0x100
00002c  491c              LDR      r1,|L1.160|
00002e  f8c1080c          STR      r0,[r1,#0x80c]
000032  e00a              B        |L1.74|
                  |L1.52|
;;;37     	}
;;;38     	else if(VsyncCnt == 2)
000034  4818              LDR      r0,|L1.152|
000036  7800              LDRB     r0,[r0,#0]  ; VsyncCnt
000038  2802              CMP      r0,#2
00003a  d106              BNE      |L1.74|
;;;39     	{
;;;40     		FIFO_WEN_L;
00003c  4817              LDR      r0,|L1.156|
00003e  6800              LDR      r0,[r0,#0]
000040  f4207080          BIC      r0,r0,#0x100
000044  4916              LDR      r1,|L1.160|
000046  f8c1080c          STR      r0,[r1,#0x80c]
                  |L1.74|
;;;41     	}
;;;42     
;;;43     }
00004a  4770              BX       lr
;;;44     //外部中断初始化程序
                          ENDP

                  EXTIX_Init PROC
;;;45     //初始化PA0,PA13,PA15为中断输入.
;;;46     void EXTIX_Init(void)
00004c  b510              PUSH     {r4,lr}
;;;47     {
;;;48     	RCC->APB2ENR|=1<<4;     //使能PORTC时钟
00004e  4815              LDR      r0,|L1.164|
000050  6980              LDR      r0,[r0,#0x18]
000052  f0400010          ORR      r0,r0,#0x10
000056  4913              LDR      r1,|L1.164|
000058  6188              STR      r0,[r1,#0x18]
;;;49     	//RCC->APB2ENR|=1<<0;     //开启辅助时钟		  
;;;50     	//AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
;;;51     	//AFIO->MAPR|=0X04000000; //关闭JTAG	    
;;;52     
;;;53     	//GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入	  
;;;54     	//GPIOA->CRL|=0X00000008;   
;;;55     	GPIOC->CRH&=0XFF0FFFFF;//PC设置成输入	  
00005a  4813              LDR      r0,|L1.168|
00005c  6840              LDR      r0,[r0,#4]
00005e  f4200070          BIC      r0,r0,#0xf00000
000062  4911              LDR      r1,|L1.168|
000064  6048              STR      r0,[r1,#4]
;;;56     	GPIOC->CRH|=0X00800000; 				   
000066  4608              MOV      r0,r1
000068  6840              LDR      r0,[r0,#4]
00006a  f4400000          ORR      r0,r0,#0x800000
00006e  6048              STR      r0,[r1,#4]
;;;57     	GPIOC->ODR|=1<<13;	   //PC上拉
000070  4608              MOV      r0,r1
000072  68c0              LDR      r0,[r0,#0xc]
000074  f4405000          ORR      r0,r0,#0x2000
000078  60c8              STR      r0,[r1,#0xc]
;;;58     
;;;59     
;;;60     	Ex_NVIC_Config(GPIO_C,13,RTIR);//上降沿触发
00007a  2202              MOVS     r2,#2
00007c  210d              MOVS     r1,#0xd
00007e  4610              MOV      r0,r2
000080  f7fffffe          BL       Ex_NVIC_Config
;;;61     
;;;62     	//MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);    //抢占2,子优先级2,组2
;;;63     	MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2	   
000084  2302              MOVS     r3,#2
000086  2228              MOVS     r2,#0x28
000088  2101              MOVS     r1,#1
00008a  4618              MOV      r0,r3
00008c  f7fffffe          BL       MY_NVIC_Init
;;;64     }
000090  bd10              POP      {r4,pc}
;;;65     
                          ENDP

000092  0000              DCW      0x0000
                  |L1.148|
                          DCD      0x40010414
                  |L1.152|
                          DCD      VsyncCnt
                  |L1.156|
                          DCD      0x4001080c
                  |L1.160|
                          DCD      0x40010000
                  |L1.164|
                          DCD      0x40021000
                  |L1.168|
                          DCD      0x40011000

                          AREA ||.data||, DATA, ALIGN=0

                  VsyncCnt
000000  00                DCB      0x00

⌨️ 快捷键说明

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