共2条
1/1 1 跳转至页
VIC 请问周工有关VIC中断的问题,急啊
问
周工:
我在使用2104熟悉VIC的过程中,想模仿书中的外部按键产生中断控制LED亮灭.但是这时我按照书中程序编写好C源程序并加入了与此对应的实验程序的工程中的其他文件,这些文件都是正确的,但是调试时我发现只能看到LED灯点亮,而无法产生中断.而使用你们提供的实验程序却可以控制LED灯,请问这是为什么啊?弄了好久都不行,很郁闷.谢谢. 答 1: 8019的地址总线为什么串接电阻请问周工,22XX开发板中的网络芯片8019数据总线串了电阻,数据总线加电阻可以理解,因为数据总线是输入输出口,但是为什么地址总线上也串接了470欧姆的电阻,地址总线是ARM的3.3V 单向输出到5V的8019啊? 答 2: 启动代码中要设置IRQ中断处理程序不知道楼主的Vectors.s中是怎么写的,实验程序中的写法是:
;中断向量表
Vectors
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr
ResetAddr DCD Reset
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD IRQ_Eint1
FIQ_Addr DCD FIQ_Handler
其中的倒数第2行中的IRQ_Eint1就是用C语言写的中断处理程序的名称(入口地址)。
这样当发生中断时,PC就会跳转到IRQ_Eint1处开始执行中断处理。该函数在实验程序的EINT1_LED.c文件中,函数原型是:
void __irq IRQ_Eint1(void); 答 3: jarodwang大侠,我还是不明白,再次请教我使用的Vectors.s就是实验程序里的,我检查过了,函数名也完全一样,可是我的程序就是不能产生中断.我又试过先复制一份源文件到新建的工程中,在从实验程序中添加Vectors.s等文件,应该说这个新建的工程和实验程序是完全一样的,可是他同样也无法产生中断,请问是什么问题? 答 4: re.简单的调试步骤:
1.发出外部中断信号;
2.观察外部中断标志寄存器对应位是否置位,如果没有置位表示外部中断设置有问题;
3.如果有置位,检查中断向量设置是否正确;
4.检查异常向量表是否正确;
我在使用2104熟悉VIC的过程中,想模仿书中的外部按键产生中断控制LED亮灭.但是这时我按照书中程序编写好C源程序并加入了与此对应的实验程序的工程中的其他文件,这些文件都是正确的,但是调试时我发现只能看到LED灯点亮,而无法产生中断.而使用你们提供的实验程序却可以控制LED灯,请问这是为什么啊?弄了好久都不行,很郁闷.谢谢. 答 1: 8019的地址总线为什么串接电阻请问周工,22XX开发板中的网络芯片8019数据总线串了电阻,数据总线加电阻可以理解,因为数据总线是输入输出口,但是为什么地址总线上也串接了470欧姆的电阻,地址总线是ARM的3.3V 单向输出到5V的8019啊? 答 2: 启动代码中要设置IRQ中断处理程序不知道楼主的Vectors.s中是怎么写的,实验程序中的写法是:
;中断向量表
Vectors
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr
ResetAddr DCD Reset
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD IRQ_Eint1
FIQ_Addr DCD FIQ_Handler
其中的倒数第2行中的IRQ_Eint1就是用C语言写的中断处理程序的名称(入口地址)。
这样当发生中断时,PC就会跳转到IRQ_Eint1处开始执行中断处理。该函数在实验程序的EINT1_LED.c文件中,函数原型是:
void __irq IRQ_Eint1(void); 答 3: jarodwang大侠,我还是不明白,再次请教我使用的Vectors.s就是实验程序里的,我检查过了,函数名也完全一样,可是我的程序就是不能产生中断.我又试过先复制一份源文件到新建的工程中,在从实验程序中添加Vectors.s等文件,应该说这个新建的工程和实验程序是完全一样的,可是他同样也无法产生中断,请问是什么问题? 答 4: re.简单的调试步骤:
1.发出外部中断信号;
2.观察外部中断标志寄存器对应位是否置位,如果没有置位表示外部中断设置有问题;
3.如果有置位,检查中断向量设置是否正确;
4.检查异常向量表是否正确;
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |