各位仁兄,小弟现在遇到一个疑惑,请大家帮忙解决以下
我有个DSP程序,是关于串口接收和发送,接收和发送我都用的是中断,其中接收是高优先,发送是低优先,今天突然发现我的发送中断处理函数没有被调用,即发送中断标志没有清, 问题 1\怎么我用串口调试,发送都是正常的呢, 2\我调用了发送函数,是不是IFR相应中断标志就置位了,总中断在产生中断时就关闭了吧,怎么还能继续产生其它中断,我还用了其它定时中断 ;建立中断向量表 .sect ".vectors" RSVECT B _c_int0 INT1 B _c_int1 INT2 B _c_int2 INT3 B _c_int3 INT4 B PHANTOM INT5 B _c_int5////现在是INT5 B PHANTOM INT6 B PHANTOM 串口初始化 void SCI_Init() { SCICCR=0x0007; //空闲多处理器模式,8位数据位,停止位,无奇偶校验位 SCICTL1=0x0013; //接收,发送,内部时钟使能SLEEP=1 SCICTL2=0x0003; //接收中断使能 SCIPRI=0x0040; //接受高中断优先级1,送低优先级5 SCIHBAUD=0x0002; //40M,波特率设置为9600 SCILBAUD=0x0008; SCICTL1=0x0033; //串口初始化完成 } 发送函数 void SCI_Send(unsigned int senddata) { SCITXBUF = senddata; } 发送中断处理函数 void c_int5() { if(PIVR!=0x07) //低优先级的SCI发送中断 { enable();//开总中断 return; } IFR = 0x10; enable();//开总中断 } |