共2条
1/1 1 跳转至页

问
运用实验板调试外部中断程序,将软件设置好,允许中断,并且硬件也是好的,但按下KEY1(Eint1)中断总是没有响应,请高手指点。程序如下:
程序在while(1)处循环时,按下KEY1,应响应中断,并跳转到
LDR PC, [PC, #-0xff0],但始终在while(1)处循环,请高手指点。
int main(void)
{ PINSEL0 = 0x20000000; // 设置I/O口工作模式,P0.14设置为EINT1
PINSEL1 = 0x00000000;
IODIR = LEDCON; // 设置LED4控制口为输出,其它I/O为输入
/* 打开EINT1中断(不设置向量控制器,即使用非向量IRQ) */
VICIntSelect = 0x00000000;
VICIntEnable = 0x00008000;
EXTINT = 0x07; // 清除外部中断标志
while(1); // 等待中断
return(0);
}
;中断向量表
Reset
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
ResetAddr DCD ResetInit
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler 答 1: 是否打开了memory窗口?如果是,请关掉 答 2: re谢谢!
不过,请问,这也有关系吗?我没有开memory窗口。 答 3: re你的VICVectAddr(0xfffff030)里写的是什么?是你期望的中断处理程序的地址吗? 答 4: reVICVectAddr中的地址应该是系统自动添加的对吧?
由于选择的是非向量IRQ,所以当外部中断请求时,VICVectAddr=VICDefVectAddr=外部中断1程序的入口地址。
说的不对请指正,谢谢!
我现在的问题是外部中断没有响应,而不是跳往中断入口地址有问题。 答 5: re请高手指点啊!很急的。 答 6: 如果你的中断配置都正确如果你的中断配置都正确,可能是你还没有进入到中断入口,相关的中断标志已经被清楚掉了.
答 7: re:如果你的中断配置都正确大狭能否说的清楚一点? 答 8: re首先用示波器确认你的中断条件是否已经产生
程序在while(1)处循环时,按下KEY1,应响应中断,并跳转到
LDR PC, [PC, #-0xff0],但始终在while(1)处循环,请高手指点。
int main(void)
{ PINSEL0 = 0x20000000; // 设置I/O口工作模式,P0.14设置为EINT1
PINSEL1 = 0x00000000;
IODIR = LEDCON; // 设置LED4控制口为输出,其它I/O为输入
/* 打开EINT1中断(不设置向量控制器,即使用非向量IRQ) */
VICIntSelect = 0x00000000;
VICIntEnable = 0x00008000;
EXTINT = 0x07; // 清除外部中断标志
while(1); // 等待中断
return(0);
}
;中断向量表
Reset
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
ResetAddr DCD ResetInit
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler 答 1: 是否打开了memory窗口?如果是,请关掉 答 2: re谢谢!
不过,请问,这也有关系吗?我没有开memory窗口。 答 3: re你的VICVectAddr(0xfffff030)里写的是什么?是你期望的中断处理程序的地址吗? 答 4: reVICVectAddr中的地址应该是系统自动添加的对吧?
由于选择的是非向量IRQ,所以当外部中断请求时,VICVectAddr=VICDefVectAddr=外部中断1程序的入口地址。
说的不对请指正,谢谢!
我现在的问题是外部中断没有响应,而不是跳往中断入口地址有问题。 答 5: re请高手指点啊!很急的。 答 6: 如果你的中断配置都正确如果你的中断配置都正确,可能是你还没有进入到中断入口,相关的中断标志已经被清楚掉了.
答 7: re:如果你的中断配置都正确大狭能否说的清楚一点? 答 8: re首先用示波器确认你的中断条件是否已经产生
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
分享汽车通信和多媒体总线结构被打赏20分 | |
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
NUCLEO-U083RC学习历程38+串口通过队列的方式输出两个字符串被打赏20分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
分享电控悬架的结构与工作原理(一)被打赏20分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 |