Improved the robustness of ADC I2S data port init in MASTER_CODEC mode

This commit is contained in:
Ross Owen
2014-01-22 15:59:56 +00:00
parent d07ec8f9a2
commit 062e06df97

View File

@@ -321,7 +321,7 @@ static inline void doI2SClocks(unsigned divide)
#if (I2S_CHANS_ADC != 0) #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; //p_i2s_adc[0] @ (tmp - 1) :> void;
asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1)); 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 */ #else /* ifndef CODEC_MASTER */
/* Wait for LRCLK edge */ /* Wait for LRCLK edge */
p_lrclk when pinseq(0) :> void;
p_lrclk when pinseq(1) :> void; p_lrclk when pinseq(1) :> void;
p_lrclk when pinseq(0) :> void; p_lrclk when pinseq(0) :> void;
p_lrclk when pinseq(1) :> void; p_lrclk when pinseq(1) :> void;
p_lrclk when pinseq(0) :> void @ tmp; p_lrclk when pinseq(0) :> void;
tmp += 33; p_lrclk when pinseq(1) :> void @ tmp;
tmp += 97;
#if (I2S_CHANS_DAC != 0) #if (I2S_CHANS_DAC != 0)
#pragma loop unroll #pragma loop unroll
@@ -374,11 +374,10 @@ static inline void doI2SClocks(unsigned divide)
} }
#endif #endif
p_i2s_adc[0] @ tmp - 1 :> void;
#pragma loop unroll #pragma loop unroll
for(int i = 0; i < I2S_WIRES_ADC; i++) 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]); clearbuf(p_i2s_adc[i]);
} }