打印

请教张教主:关于中断冲突问题

[复制链接]
1747|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linyi2007|  楼主 | 2008-7-26 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
张教主:您好,我目前碰到这样的一个中断冲突问题,想向您请教一下:

  我用08GT16A的单片机,现在有三个中断:定时中断,AD中断,SCI发送中断。我在定时中断中,启动第一通道的AD采样,在AD中断中启动下一通道的AD采样,如果循环,共有8路AD,为了能保证8路AD采样不受其它中断干扰(SCI发送中断干扰),我在定时中断内关闭SCIxC2_TCIE,在最后一个AD采样中断中启动SCIxC2_TCIE。结果调试程序中,出现了程序复位的现象,这是为什么?

  原意想:在SCI发送数据时,如果发生AD采样中断,则发送中断向AD中断让路,8路AD采样完毕后,自动进入SCI发送中断,继续发送剩余的数据帧。

  相关实验:我做过相类似的实验:定时中断1,AD中断,定时中断2。程序流程一样,只不过把SCI发送中断,改为定时中断2。让在8路AD采样过程发生定时器2中断,结果程序向设想的一样,8路AD采样没受定时中断2干扰,AD采样完毕后才进入定时中断2。

  为什么,SCI2发送中断与定时器2中断有这么大的区别呢?

相关帖子

沙发
张明峰| | 2008-7-27 21:01 | 只看该作者

SCI发送处理过程有问题

SCIxC2_TCIE是不能随便置1的。没有数据发送时,该位必须处于禁止状态。

使用特权

评论回复
板凳
linyi2007|  楼主 | 2008-7-28 09:06 | 只看该作者

今天情况有好转

昨天,对程序做了些修改,好像不会复位了,情况朝设想的方向靠近。但还没确定是否发送正确。

关于SCIxC2_TCIE问题:
   我看过张教主一篇关于TIE的帖子,里面讲TIE是在给SCIxD赋值后才能置1,
我也这么做的。我在定时中断里让TCIE清0,原意是想如果此时有数据发送,则给AD采样让路,等AD结束后置TCIE,可能此时TC位已经为1了,此时就会自动进入SCI发送中断,然后启动下一个数据的SCI发送。

使用特权

评论回复
地板
王培1| | 2008-7-31 20:12 | 只看该作者

建议

1:哥们,你算一下你发送一帧数据所要的时间
2:两次定时中断2的间隔时间
3:中断发送不用中断实验看看,或者发送的时候关闭定时中断2,完了才打开

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

46

帖子

1

粉丝