interrupt void i2s_rxIsr() { IRQ_disable(PROG1_EVENT); // read data and do something with it here IRQ_enable(PROG1_EVENT); } i2sInit( ) { I2S_Config hwConfig; CSL_IRQ_Config config; /* Set the value for the configure structure */ hwConfig.dataType = I2S_STEREO_ENABLE; hwConfig.loopBackMode = I2S_LOOPBACK_DISABLE; hwConfig.fsPol = I2S_FSPOL_LOW; hwConfig.clkPol = I2S_RISING_EDGE; hwConfig.datadelay = I2S_DATADELAY_ONEBIT; hwConfig.datapack = I2S_DATAPACK_ENABLE; hwConfig.signext = I2S_SIGNEXT_DISABLE; hwConfig.wordLen = I2S_WORDLEN_32; hwConfig.i2sMode = I2S_SLAVE; hwConfig.FError = I2S_FSERROR_ENABLE; hwConfig.OuError = I2S_OUERROR_ENABLE; /* Configure hardware registers */ i2sHandle = I2S_open(I2S_INSTANCE0, I2S_INTERRUPT, I2S_CHAN_STEREO); I2S_setup(i2sHandle, &hwConfig); I2S_transEnable(i2sHandle, TRUE); /* Clear any pending interrupts */ IRQ_clearAll(); /* Disable all the peripheral interrupts */ IRQ_disableAll(); IRQ_setVecs((Uint32)(&VECSTART)); config.funcAddr = &i2s_rxIsr; IRQ_plug(PROG1_EVENT, config.funcAddr); IRQ_enable(PROG1_EVENT); IRQ_globalEnable(); }