#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)
{
PieCtrl.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来发送数据,在串口接收窗口中能正常显示发送的数据,但就是进不去发送中断服务程序中,请求帮忙???拜托兄弟们和版主们,给点意见,万分感谢!!!!!
|