Board logo

标题: sci的发送中断服务程序进不了 [打印本页]

作者: reporter    时间: 2013-9-5 14:15     标题: sci的发送中断服务程序进不了

#include "DSP28_Device.h"
void InitPieCtrl(void);
void InitPieVectTable(void);
interrupt void TX_ISR(void);
//interrupt void RX_ISR(void);
Uint16 Send_Flag,RX_dat[100],i,j,TX_dat[100];
void main(void)
{
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE中断*/
InitPieCtrl();
/*初始化PIE中断矢量表*/
InitPieVectTable();

/*初始化SCIA寄存器*/
    InitSci();
    for(i = 0; i < 100; i++)
    {
     RX_dat=0;
     TX_dat=i;
}
    i = 0;
    j = 0;
    Send_Flag = 0;
   
    EALLOW;
    PieVectTable.TXAINT=&TX_ISR;
//    PieVectTable.RXAINT=&RX_ISR;
    EDIS;
   
//    PieCtrl.PIEIER9.bit.INTx1=1;
    PieCtrl.PIEIER9.bit.INTx2=1;
    IER=IER|0x0100;
    EINT;
while(1)
{
// if(SciaRegs.SCICTL2.bit.TXRDY==1&&Send_Flag==1)
// { SciaRegs.SCITXBUF=RX_dat;
//  i++;
//  Send_Flag=0;
//  if(i==j)
//  { i=0;
//   j=0;
//  }
//  if(i==100)
//   i=0;
//
// }

;
}
}  
interrupt void TX_ISR(void)
{
// PieCtrl.PIEIER9.bit.INTx1=0;

SciaRegs.SCITXBUF=RX_dat;
i++;
if(i==100)
{
 &nbspieCtrl.PIEIER9.bit.INTx2=0;
}
PieCtrl.PIEACK.bit.ACK9=1;
// PieCtrl.PIEIER9.bit.INTx1=1;
}
//interrupt void RX_ISR(void)
//{
// RX_dat[j]=SciaRegs.SCIRXBUF.all;
// Send_Flag=1;
// j++;
// if(j==2)
//  j=0;
// PieCtrl.PIEACK.bit.ACK9=1;
//}
首先SCI的接收中断服务程序可以正常进入执行,同时,也可以通过判断SciaRegs.SCICTL2.TXRDY==1来发送数据,在串口接收窗口中能正常显示发送的数据,但就是进不去发送中断服务程序中,请求帮忙???拜托兄弟们和版主们,给点意见,万分感谢!!!!!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0