From 062e06df97c8fc93c3dc6c4b10508ad0a10941fa Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 22 Jan 2014 15:59:56 +0000 Subject: [PATCH] Improved the robustness of ADC I2S data port init in MASTER_CODEC mode --- module_usb_audio/audio.xc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index 0bcde8bf..3a172e76 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -321,7 +321,7 @@ static inline void doI2SClocks(unsigned divide) #if (I2S_CHANS_ADC != 0) - for(int i = 0; i < I2S_WIRES_DAC; i++) + for(int i = 0; i < I2S_WIRES_ADC; i++) { //p_i2s_adc[0] @ (tmp - 1) :> void; asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1)); @@ -359,12 +359,12 @@ static inline void doI2SClocks(unsigned divide) #else /* ifndef CODEC_MASTER */ /* Wait for LRCLK edge */ - p_lrclk when pinseq(0) :> void; p_lrclk when pinseq(1) :> void; p_lrclk when pinseq(0) :> void; p_lrclk when pinseq(1) :> void; - p_lrclk when pinseq(0) :> void @ tmp; - tmp += 33; + p_lrclk when pinseq(0) :> void; + p_lrclk when pinseq(1) :> void @ tmp; + tmp += 97; #if (I2S_CHANS_DAC != 0) #pragma loop unroll @@ -374,11 +374,10 @@ static inline void doI2SClocks(unsigned divide) } #endif - p_i2s_adc[0] @ tmp - 1 :> void; - #pragma loop unroll for(int i = 0; i < I2S_WIRES_ADC; i++) { + asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1)); clearbuf(p_i2s_adc[i]); }