diff --git a/build/libraries/snd/ARM7/snd_i2s.c b/build/libraries/snd/ARM7/snd_i2s.c index ae712a8..134fc76 100644 --- a/build/libraries/snd/ARM7/snd_i2s.c +++ b/build/libraries/snd/ARM7/snd_i2s.c @@ -44,18 +44,20 @@ static void I2Si_Init(void) reg_SND_POWCNT |= REG_SND_POWCNT_SPE_MASK; +/* CODEC独立運動 + if ((reg_CFG_CLK & REG_CFG_CLK_SND_MASK) == 0) { // initialize codec with enabling I2S CDC_Init(); } - +*/ reg_CFG_TWL_EX |= REG_CFG_TWL_EX_I2S_MASK; if (reg_CFG_TWL_EX & REG_CFG_TWL_EX_I2S_MASK) { isTwl = TRUE; // Set default values - I2S_SetSamplingRatio(TRUE); +// I2S_SetSamplingRatio(TRUE); 勝手に48kにされたら困る I2S_SetMixingRatio(8); I2S_Mute(FALSE); } diff --git a/build/libraries/snd/ARM7/snd_mic.c b/build/libraries/snd/ARM7/snd_mic.c index 7d5a40c..55b3511 100644 --- a/build/libraries/snd/ARM7/snd_mic.c +++ b/build/libraries/snd/ARM7/snd_mic.c @@ -76,9 +76,13 @@ void MICi_Start( MICSampleRate smp, u32 dmaNo, void *dest, s32 size ) MICi_ExDmaRecvAsync( dmaNo, dest, size ); OS_SetIrqFunction( OS_IE_DMA4 << ch, MICi_ExDmaInterruptHandler ); - reg_OS_IF = (OS_IE_DMA4 << ch); reg_OS_IE |= (OS_IE_DMA4 << ch); // enable mic dma interrupt +/* + OS_SetIrqFunction( OS_IE_MIC, MICi_FifoInterruptHandler ); + reg_OS_IF2 = (OS_IE_MIC >> 32); + reg_OS_IE2 |= (OS_IE_MIC >> 32); // disable mic fifo interrupt +*/ } } @@ -191,7 +195,17 @@ void MICi_ExDmaInterruptHandler( void ) *---------------------------------------------------------------------------*/ void MICi_FifoInterruptHandler( void ) { -// OS_TPrintf( "X" ); + +/* + // 本当はDMAを停止してからFIFOをクリアした方がいいらしい + + // マイクディゼーブル + reg_SND_MICCNT &= (u16)(~REG_SND_MICCNT_E_MASK); + // FIFO & エラーフラグクリア + reg_SND_MICCNT |= REG_SND_MICCNT_FIFO_CLR_MASK; + // マイクイネーブル + reg_SND_MICCNT |= (u16)(REG_SND_MICCNT_E_MASK); +*/ #if 0 MICWork *wp = &micWork;