Dear friends,
I am trying to write a code to continuously read a data from a peripheral. I write the below code and during debugging the code loops in the highlighted "do while" loop forever. The CC bit never return to 1 in the SPISTAT1 register of the SPI. Any idea?
do { /* Check for busy result */
value=CSL_FEXT(CSL_SPI_REGS->SPISTAT1,SPI_SPISTAT1_BSY);
}while((value & 0x01) == 0x01);
CSL_FINS(CSL_SPI_REGS->SPICMD1,SPI_SPICMD1_FLEN,2);
CSL_FINS(CSL_SPI_REGS->SPIDR2,SPI_SPIDR2_DATA,0x0000);
CSL_FINS(CSL_SPI_REGS->SPIDR1,SPI_SPIDR1_DATA,0x0000);
CSL_FINS(CSL_SPI_REGS->SPICMD2,SPI_SPICMD2_CMD,0x71);
do { /* Check for Word Complete result */
value=CSL_FEXT(CSL_SPI_REGS->SPISTAT1,SPI_SPISTAT1_CC);
}while((value & 0x01) == 0x0); //waiting for CC=1
do { /* Check for busy result */
value=CSL_FEXT(CSL_SPI_REGS->SPISTAT1,SPI_SPISTAT1_BSY);
}while((value & 0x01) == 0x01);
SPI_read(hSpi ,spiReadPt, CSL_SPI_BUF_LEN);
Thanks in advance.