/* If there is no room in the transmit FIFO, then this function will wait in a polling loop until the data can be written. */
void I2STxDataPut(unsigned long ulBase, unsigned long ulData)
/* If there is no room in the transmit FIFO, then this function will wait in a polling loop until the data can be written. */
void I2STxDataPut(unsigned long ulBase, unsigned long ulData)
{
    ASSERT(ulBase == I2S0_BASE);
    while(HWREG(ulBase + I2S_O_TXLEV) >= 16)
    {
    }
    HWREG(ulBase + I2S_O_TXFIFO) = ulData;
}