Hello all,
I have a pb setting up a SCI FIFO reading on 28377D.
The reading is perfomred in an interrupt of 15 words in FIFO
setup:
My code is as:
setup of IT (based on echoback example):
/* Enable FIFO operations */
SciaRegs.SCIFFTX.bit.TXFIFORESET = 1u;
SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1u;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1u;
/* Enable the SCI controller */
SciaRegs.SCICTL1.bit.SWRESET = 1u;
/* Enable interrupt level of 15 word in FIFO */
SciaRegs.SCIFFRX.bit.RXFFIL = 15u;
/* Enable receiver FIFO interrupt */
SciaRegs.SCIFFRX.bit.RXFFIENA = 1u;
/* Enable receiver */
SciaRegs.SCICTL1.bit.RXENA = 1u;
/* Enable transmit */
SciaRegs.SCICTL1.bit.TXENA = 1u;
interrupt void SCI_isr(void)
{
Uint16 l_u16NbDataRx = 0;
Uint16 l_u16Cnt = 0;
/* Retrieve the number of received data */
l_u16NbDataRx = x_u16DrvSCI_CoreNbDataReceived();
if (0u != l_u16NbDataRx)
{
/* Test out of range buffer size */
if ((l_u16NbDataRx) <= DSP_MSG_RX_BUFFER_SIZE)
{
/* Store the SCI receiver FIFO content in the reception buffer */
for (l_u16Cnt = 0 ; l_u16Cnt < l_u16NbDataRx; l_u16Cnt++)
{
x_vDrvSCI_CoreReceive(&(dsp_rx_msg.Data[l_u16Cnt].RSValue[0]));
}
}
}
x_vDrvSCI_CoreClearIT();
// Acknowledge this interrupt to receive more interrupts from group 9
PieCtrlRegs.PIEACK.all |= PIEACK_GROUP9;
}
The interrupt is working good.. I receive 16 data but i m unable to read them with my "for" loop..
I miss something?
Thank you!