無標題.png (87.33 KB, 下載次數: 14)
下載附件
2023-5-11 12:29 上傳
進入中斷led燈關閉,中斷返回led燈。中斷入口地址不知道怎么寫。
以下是程序
RCCAPB2_ENR EQU 0X40021018
GPIOC_CRH EQU 0X40011004
GPIOC_ODR EQU 0X4001100C
GPIOC_13 EQU 0X422201B4
**************************
GPIOB_CRL EQU 0X40010C00
GPIOB_00 EQU 0X42218000
**************************
EXTI_IMR EQU 0X40010400;中斷屏蔽寄存器,
EXTI_FTSR EQU 0X4001040C;下降沿觸發寄存器
AFIO_EXTICR1 EQU 0X40010008;外部中斷引腳選擇寄存器
**************************
AREA ICODE,CODE
B __main ;跳轉到主程序
B LED_OFF ;跳轉到中斷服務程序
ENTRY
EXPORT __main
__main
BL SYSTEM_BIOS
ST
BL LED_ON
B ST
SYSTEM_BIOS
LDR R0,=EXTI_IMR ;解除0位中斷屏蔽
MOV R1,#0X01
STR R1,[R0]
LDR R0,=EXTI_FTSR ;設置0位中斷為下降沿觸發
MOV R1,#0X01
STR R1,[R0]
LDR R0,=AFIO_EXTICR1;選擇pb0位為中斷輸入引腳
MOV R1,#0X01
STR R1,[R0]
LDR R0,=GPIOB_CRL ;設置pb0位為輸入
MOV R1,#0X08
STR R1,[R0]
LDR R0,=RCCAPB2_ENR ;打開gpioc時鐘gpiob
LDR R1,=0X18
STR R1,[R0]
LDR R0,=GPIOC_CRH ;設置c13口為輸出
LDR R1,=0X00300000
STR R1,[R0]
BX LR
LED_ON ;打開led
LDR R0,=GPIOC_13
MOV R1,#1
STR R1,[R0]
BX LR
LED_OFF ;關閉led
STMFD SP!,{R0,R1,LR}
LDR R0,=GPIOC_13
MOV R1,#0
STR R1,[R0]
LDMFD SP!,{R0,R1,LR}
END
|