/**********************************************************\ * LOOP.C * * A simple audio I/O function. * * S. Weiss / A. Shligersky, University of Southampton * 16/2/2003 **********************************************************/ /**********************************************************\ * Prototypes \**********************************************************/ void codec_init(void); void init_HWI(void); /**********************************************************\ * Include Files \**********************************************************/ #include // C6000 compiler definitions #include // CSL headers #include #include #include // BSL headers #include #include /**********************************************************\ * Global Variables \**********************************************************/ AD535_Handle hAD535; AD535_Config my_AD535_Config = { AD535_LOOPBACK_DISABLE, AD535_MICGAIN_OFF, AD535_GAIN_0DB, AD535_GAIN_0DB }; volatile short in_sample, out_sample; // PUT YOUR GLOBAL VARIABLE HERE /**********************************************************\ * Main Routine \**********************************************************/ void main() { // HERE YOU NEED TO INITIALISE YOUR // TDL VALUES TO ZERO CSL_init(); // Initialize CSL library BSL_init(); // Initialize BSL library codec_init(); // Initialise the AD535 codec init_HWI(); // Initialisa hardware interrupts AD535_write(hAD535, 0); // Write anything to cause mcbsp // to start transmitting interrupts while(1); // Loop idle while processing is // performed in the Receive ISR } /**********************************************************\ * Initialisation of Hardware Interrupts \**********************************************************/ void init_HWI(void) { IRQ_globalEnable(); // Enable ints globally IRQ_enable(IRQ_EVT_XINT0); // Enable McBSP0 transmit interrupt IRQ_enable(IRQ_EVT_RINT0); // Enable McBSP0 receive interrupt } /**********************************************************\ * Transmit Interrupt Service Routine \**********************************************************/ void XINT0_HWI(void) { AD535_HWI_write(hAD535,out_sample); } /**********************************************************\ * Receive Interrupt Service Routine \**********************************************************/ void RINT0_HWI(void) { float dummy; in_sample=AD535_HWI_read(hAD535); // input in a sample dummy = (float) in_sample; // PLACE YOUR PROCESSING out_sample = (short) dummy; // HERE } /**********************************************************\ * Codec Initialisation \**********************************************************/ void codec_init() { hAD535 = AD535_open(AD535_localId); AD535_reset(hAD535); AD535_config(hAD535, &my_AD535_Config); MCBSP_setfree(0); }