怎样把某个中断向量服务程序起始地址指向另外一个地址??
- UID
- 113561
- 性别
- 男
|
怎样把某个中断向量服务程序起始地址指向另外一个地址??
在CW中,对于没有用到的中断变量,其中断服务程序,我想把它重新指向一个地址,以避免受到干扰而进入该中断服务程序。比如说程序已屏蔽键盘输入中断,但有了干扰而进入了该中断向量服务程序,现在想把该地址指向main函数中的一个loop记号地址。以前是用汇编,
org $ffe0
fdb loop 即可以实现。
那么请问:用c是怎么实现的呢? |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
可以按照你其他中断向量一样写入
假定键盘中断是第10个中断,如果loop是个函数,你可以在在main文件中声明extern,然后在prm文件中定义
VECTOR 10 Loop
如果Loop是个标号,好像不易实现。我觉得如果你要防止误跳入中断,你可以做一个Dummy_ISR()函数
interrupt void Dummy_ISR(void)
{
asm nop;
}
VECTOR 10 Dummy_ISR
这样即使发生中断也不会有什么动作,不影响程序的运行。
[此贴子已经被作者于2005-10-24 9:53:16编辑过] |
|
|
|
|
|
- UID
- 113561
- 性别
- 男
|
loop是个标号。
按照你提供的方法,试了下,可行。
谢谢!! |
|
|
|
|
|