Part of MicroGen4 Music Synthesizer Program. (But not test it yet.) I2S ,DMA ,Stereo ,16Bit Dac(PCM1781) See detail: http://www.geocities.jp/micro_diys/index2
Now added generate Saw Wave to DAC function in generate(); You will hear Stereo saw wave sound now.
more info: http://www.geocities.jp/micro_diys/i2s_test_sample/i2s_test_sample.html
Diff: Synthesizer.cpp
- Revision:
- 0:dc88722ab141
- Child:
- 1:48f506a7b488
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Synthesizer.cpp Thu Jul 03 11:59:07 2014 +0000 @@ -0,0 +1,32 @@ +/* + COPYRIGHT(c) 2014 p.igmon +*/ + +#include "synthesizer.h" + +/* DMA WAVE BUFFER */ +extern S16 DMA_Buffer[]; +extern __IO BUFFER_StateTypeDef BufferOffset; + +void wave_generate(void){ + U16 count; + S16 rch,lch;// 16bit stereo + volatile S16 *ptr0; + + if (BufferOffset == DMA_FullComplete){ + ptr0 = (S16 *)&DMA_Buffer[DMA_BUFFERSIZE>>1];// From Half + }else{ + ptr0 = (S16 *)&DMA_Buffer[0];// From Top + } + BufferOffset = DMA_Idle; + + count = DMA_BUFFERSIZE/4; + while(count-- > 0){ + + /* generate wave here */ +// lch = ..... +// rch = ..... + *ptr0++ = lch; + *ptr0++ = rch; + } +}