共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
