完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
哪位大佬帮我看一下,到底我哪里设置错了,死也进不去中断
P3_MFP EQU 0x5000003C P33 EQU 0X5000426C P32 EQU 0x50004268 P3_IEN EQU 0x500040DC P3_ISRC EQU 0x500040E0 Stack_Size EQU 0x00000200 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; Heap Configuration ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Heap_Size EQU 0x00000000 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem SPACE Heap_Size __heap_limit PRESERVE8 THUMB ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD 0 ; NMI Handler DCD 0 ; Hard Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; SVCall Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; PendSV Handler DCD 0 ; SysTick Handler ; External Interrupts ; maximum of 32 External Interrupts are possible DCD 0 DCD 0 DCD 0 DCD EINT1_IRQHandler AREA |.text|, CODE, READONLY ; Reset Handler ENTRY Reset_Handler EXPORT Reset_Handler [WEAK] ;EXPORT TABLE ;IMPORT SystemInit ;IMPORT main LDR R0, =0x50000100 ; Unlock Register LDR R1, =0x59 STR R1, [R0] LDR R1, =0x16 STR R1, [R0] LDR R1, =0x88 STR R1, [R0] ; Init POR LDR R2, =0x50000024; LDR R1, =0x00005AA5 STR R1, [R2] ; Init Clock LDR R2, =0x5000021C;CLKSEL2 LDR R1, =0x000000A8; STR R1, [R2] LDR R2, =0x50000200;PWRCON LDR R1, =0x00000014;22M_OSC_EN STR R1, [R2] LDR R2, =0x50000210;CLKSEL0 LDR R1, =0x0000001A;HCLK from PLL STR R1, [R2] ;LDR R2, =0x50000214;CLKSEL1 ;LDR R1, =0x00000210 ;STR R1,[R2];SPI Clock from PLL,TIMER0 Clock from HCLK ;LDR R2, =0x50000208;APBCLK ;LDR R1, =0x00001004;SPI0CLK_EN,TIMER0_EN ;STR R1, [R2] LDR R2, =0x50000220;PLLCON LDR R1, =0x0008D25F;48.25MHz STR R1, [R2] ; Lock register MOVS R1, #0 STR R1, [R0] ;TIME0 Init ;LDR R2,=0X40010000 ;LDR R1,=0x70100010;TIME0-PUTOUT ;STR R1,[R2] ;LDR R2,=0X40010004 ;LDR R1,=0x00000003; ;STR R1,[R2] ;System Init ;LDR R2,=0X50000034;P1_MFP ;LDR R1,=0x0000F000;SPI0 复用 ;STR R1,[R2] ;LDR R2,=0X5000003C;P3_MFP ;LDR R1,=0x00004010; ;STR R1,[R2] LDR R4,=P32 LDR R5,=P33 NVIC_INIT ; NVIC Init LDR R2, =0xE000E100; LDR R1, =0x00000008 STR R1, [R2] LDR R2, =P3_IEN;EINT1_EN LDR R1, =0x00100000 STR R1, [R2] LDR R2, =P3_MFP;EINT1_EN LDR R1, =0x00000010 STR R1, [R2] ;LDR R0, =SystemInit ;BLX R0 startloop ; IO Init LDR R2, =0x500040C0; LDR R1, =0x0000FF3F; STR R1, [R2] LDR R2, =P3_ISRC; ;LDR R1, =0x00000010 ldr R1, [R2] MOVS R0,#0X00 MOVS R1,#0X01 MOVS R3,#0X16 MOVS R6,#0 STR R0,[R4] B startloop EINT1_IRQHandler MOVS R0,#0X00 MOVS R1,#0X01 STR R1,[R4] STR R0,[R4] BL mainloop END |
|
相关推荐
1个回答
|
|
p; 0x02 EINT1_init: ;设置EINT1触发方式为下降沿触发 LDR R0, =GPIO_INT_MODE1 LDR R1, [R0,#0] ;读取GPIO_INT_MODE1的值 ORR R1, R1,#(0x1 << P33) ;将GPIO_INT_MODE1的P33位置1,设置为下降沿触发模式 STR R1, [R0,#0] ;写回GPIO_INT_MODE1的值 ;设置P3.3口为EINT1口,使能P3.3口的中断功能 LDR R0, =P3_MFP LDR R1, [R0,#0] ;读取P3_MFP的值 ORR R1, R1,#(0x2 << 18) ;将P3_MFP的EINT1位置1 STR R1, [R0,#0] ;写回P3_MFP的值 ;开启EINT1中断 LDR R0, =NVIC_ISER0 LDR R1, [R0,#0] ;读取NVIC_ISER0的值 ORR R1, R1,#(0x1 << 17) ;将NVIC_ISER0的EINT1位置1,开启EINT1中断 STR R1, [R0,#0] ;写回NVIC_ISER0的值 BX LR
先简单介绍一下EINT1的工作原理: EINT1的触发方式有两种,分别是边沿触发和电平触发。在本例中我们使用的是下降沿触发方式,也就是说当EINT1的对应引脚(P3.3)从高电平跳变到低电平时,就会触发中断,执行中断服务程序。 从上面的代码可以看出,我们要使用EINT1口,需要进行以下几个步骤: 1.设置GPIO_INT_MODE1的P33位为1,实现下降沿触发。 2.设置P3.3口为EINT1口。 3.开启EINT1中断。 在你的代码中,虽然设置GPIO_INT_MODE1的P33位为1了,但是你没有设置P3.3口为EINT1口,也就是说你没有将P3.3与EINT1口进行连接。因此需要添加以下代码: LDR R0, =GPIO_P1415_MFP LDR R1, [R0,#0] ;读取GPIO_P1415_MFP的值 ORR R1, R1,#(0x2 << 14) ;将GPIO_P1415_MFP的P14位置1,设置为EINT1 STR R1, [R0,#0] ;写回GPIO_P1415_MFP的值 另外,检查一下中断服务程序是否编写正确了。如果中断服务程序编写有误,也会导致无法进入中断。最后,检查一下EINT1的硬件连接是否正确,包括连接到哪个引脚、连接方式等等。 |
|
|
|
只有小组成员才能发言,加入小组>>
3294 浏览 9 评论
2970 浏览 16 评论
3473 浏览 1 评论
9023 浏览 16 评论
4061 浏览 18 评论
1140浏览 3评论
589浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
579浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2313浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1876浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:23 , Processed in 1.119157 second(s), Total 82, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号