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
Synthesizer.cpp
- Committer:
- p_igmon
- Date:
- 2017-09-21
- Revision:
- 1:48f506a7b488
- Parent:
- 0:dc88722ab141
File content as of revision 1:48f506a7b488:
/* 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>>2;// 512samples while(count-- > 0){ /* generate wave here */ lch = ((s16)(count - 256))<<6;// Saw Wave Lch rch = ((s16)(256 -count))<<6;// Saw Wave Rch *ptr0++ = lch; *ptr0++ = rch; } }