📄 exti.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 + -