Board logo

标题: IRQ中断问题求助! [打印本页]

作者: lianyongwei    时间: 2007-9-3 09:50     标题: IRQ中断问题求助!

我现在用的是清华大学MC68HC908GP32开发板,我现在想做的是用IRQ中断 #include /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
void main(void) {
CONFIG1_COPD=1;
DDRA = 0xFF; //PortA设置为输出
//PortD输出都为低电平 与中断无关仅为指示作用
INTSCR_IMASK = 0;//允许IRQ1中断
INTSCR_MODE = 1; //触发方式选择为下降沿和低电平
EnableInterrupts; //enable interrupts 3
for(;;)
{
PTA = 0x00;
}; //死循环
}


/*IRQ1中断服务程序*/
interrupt void ISR_IRQ(void)
{
INTSCR_IMASK = 1;//为防止误中断,屏蔽中断
PTA_PTA4 = 1;
PTA_PTA5 = 1; //通过两个口控制两个发光管,指示是否进入了中断
INTSCR_ACK = 1; //确认中断,清除中断锁存
INTSCR_IMASK = 0;//退出前开启中断
}
这是我的程序,prm文件是
VECTOR 0 _Startup /* Reset vector: this is the default entry point for an application. */
VECTOR ADDRESS 0XFFFA ISR_IRQ但是现在是中断就实现不了,小弟调试了2个星期了就是没结果,谢谢啊

[此贴子已经被silverwolf7516于2007-9-3 9:50:52编辑过]


作者: strongchen    时间: 2007-9-3 10:30

如果是采用了bootloader引导程序,那么中断地址需要重新映射。仔细看一下相应的说明。
作者: lianyongwei    时间: 2007-9-3 12:37

大哥我不太理解你说的什么意思。能具体点么。谢谢了版主
作者: strongchen    时间: 2007-9-3 14:14

你可以参看这个帖子:
http://bbs.eccn.com/dispbbs.asp?BoardID=3&RootID=118663&id=119119&star=1&skin=
作者: lianyongwei    时间: 2007-9-4 14:44

谢谢,我看了他们的帖子不过我还是不明白重新映射该怎么做啊。我向问下我的程序有问题么?我的问题在什么地方,谢谢了版主。真的在这个地方我走不动了

作者: strongchen    时间: 2007-9-4 17:45

很简单,就是中断的矢量的地址不能用芯片本身的矢量地址,而要用bootloader软件定义的地址。你需要查看一下bootloader软件本身的使用说明。
作者: lianyongwei    时间: 2007-9-5 21:02

大哥你说的那个bootloader我不理解是什么意思,我不理解我现在用的编译软件是codewarrior我是在他的
/**************** interrupt vector table ****************/
#define INT_TBM 0x0000FFDC
#define INT_ADC 0x0000FFDE
#define INT_KBD 0x0000FFE0
#define INT_SCITransmit 0x0000FFE2
#define INT_SCIReceive 0x0000FFE4
#define INT_SCIError 0x0000FFE6
#define INT_SPITransmit 0x0000FFE8
#define INT_SPIReceive 0x0000FFEA
#define INT_TIM2Ovr 0x0000FFEC
#define INT_TIM2CH1 0x0000FFEE
#define INT_TIM2CH0 0x0000FFF0
#define INT_TIM1Ovr 0x0000FFF2
#define INT_TIM1CH1 0x0000FFF4
#define INT_TIM1CH0 0x0000FFF6
#define INT_PLL 0x0000FFF8
#define INT_IRQ 0x0000FFFA
#define INT_SWI 0x0000FFFC
#define INT_RESET 0x0000FFFE中找的

作者: strongchen    时间: 2007-9-6 09:28

我没见过清华大学的MC68HC908GP32开发板,你是直接用CodeWarrior下载和调试程序的吗?还是通过超级终端之类的串口工具?你设置断点看过吗?
作者: lianyongwei    时间: 2007-9-6 20:54

我设置过断点。是能进入中断,通过超级终端之类的串口工具下载程序
作者: strongchen    时间: 2007-9-7 09:37

那能进IRQ的中断吗?如果你用超级终端的话,应该是有引导程序在里面的。买这块板子的时候没有资料吗?
作者: lianyongwei    时间: 2007-9-7 13:08

是清华大学大学送的,他们没有给引导程序,
作者: strongchen    时间: 2007-9-7 13:56

你可以与他们联系,咨询一下。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0