智能车制作
标题:
XS128 IRQ中断问题
[打印本页]
作者:
vic_hong
时间:
2009-12-5 14:30
标题:
XS128 IRQ中断问题
我们用IRQ采集场中断,用codewarrier在线调试时没有问题,但是一旦复位单片机,单独运行时就有问题了,表现为PORTB的变化很慢,应该是程序某处卡死,此时若IRQ端不接入脉冲,则恢复正常,即PORTB约1s变化一次;关闭IRQ的中断也可以消除。可以排除程序其它地方的影响。在硬件上,我们直接用最小系统版来调试,也更换过最小系统版,应该不是硬件问题。若用其他中断则没有这种问题。
IRQ初始化:
IRQCR_IRQEN =1; //中断使能
IRQCR_IRQE=1; //下降沿触发
/*****************IRQ中断(场中断)********************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 6 IRQInterrupt(void) //下降沿
{
//执行的程序
}
在main 函数的for循环中加入测试语句
for(;;)
{
PORTB=~PORTB;
delay(1000);//正常情况下约1s
}
作者:
835304205
时间:
2009-12-5 14:30
IRQCR_IRQEN =1; //中断使能
IRQCR_IRQE=1; //下降沿触发我遇到过郁闷很久,顺序错了,改一下就OK啦
IRQCR_IRQE=1; //下降沿触发
IRQCR_IRQEN =1; //中断使能
because。。。
作者:
新兴MCU
时间:
2009-12-5 15:34
不给源代码我怎么帮你分析啊~~~~晕~
作者:
whut_wj
时间:
2009-12-5 16:30
我记得,IRQ没有中断标志,就不需要清标志位了。
把IRQ信号做好滤波工作。看是不是由于IRQ引起单片机复位了。
作者:
vic_hong
时间:
2009-12-5 23:19
回复
2#
新兴MCU
呵呵,不好意思啊。我奇怪的是为什么在线调试时可以,一旦单片机单独运行时就不行了。。其他的程序我大部分都屏蔽掉了,就我的测试来说关键就在IRQ上。
作者:
vic_hong
时间:
2009-12-5 23:19
回复
3#
whut_wj
怎么解释用BDM在线调试时可以,但是单独运行时不行呢?
作者:
zhshuai1
时间:
2010-6-11 00:12
师兄说的果然有道理~~~
作者:
静之音
时间:
2010-6-11 02:22
源代码
作者:
835304205
时间:
2011-11-16 21:23
其实原因很简单以为那个寄存器在一般模式下只能写一次!!!
作者:
vic_hong
时间:
2011-11-16 23:09
回复
9#
835304205
犀利。。2年前的问题终于有人来解答了,那还是我们队刚刚开始学习摄像头的时候。我之后改用其他口中断就没管过了。现在也不好试了,不过相信你是对的。
作者:
风云变幻
时间:
2012-3-10 18:20
请问这个问题怎样解决啊。。。。我也遇到这个问题啊。。悲剧啊。。。。请大侠救命啊。。。上面的方法试过啦。。。。
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2