张教主:您好,我目前碰到这样的一个中断冲突问题,想向您请教一下:
我用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中断有这么大的区别呢? |