共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
