diff options
Diffstat (limited to 'quantum/audio/audio_arm.c')
| -rw-r--r-- | quantum/audio/audio_arm.c | 133 | 
1 files changed, 9 insertions, 124 deletions
| diff --git a/quantum/audio/audio_arm.c b/quantum/audio/audio_arm.c index d38184f32..18e8a8c66 100644 --- a/quantum/audio/audio_arm.c +++ b/quantum/audio/audio_arm.c @@ -80,6 +80,7 @@ float startup_song[][2] = STARTUP_SONG;  static void gpt_cb8(GPTDriver *gptp);  #define DAC_BUFFER_SIZE 720 +#define DAC_SAMPLE_MAX  65535U  #define START_CHANNEL_1() gptStart(&GPTD6, &gpt6cfg1); \      gptStartContinuous(&GPTD6, 2U) @@ -202,132 +203,16 @@ GPTConfig gpt8cfg1 = {  // squarewave  static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, - -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +  // First half is max, second half is 0 +  [0                 ... DAC_BUFFER_SIZE/2-1] = DAC_SAMPLE_MAX, +  [DAC_BUFFER_SIZE/2 ... DAC_BUFFER_SIZE  -1] = 0,  };  // squarewave  static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { - -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -   0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, -  2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047 +  // opposite of dac_buffer above +  [0                 ... DAC_BUFFER_SIZE/2-1] = 0, +  [DAC_BUFFER_SIZE/2 ... DAC_BUFFER_SIZE  -1] = DAC_SAMPLE_MAX,  };  /* @@ -363,7 +248,7 @@ static void error_cb1(DACDriver *dacp, dacerror_t err) {  }  static const DACConfig dac1cfg1 = { -  .init         = 2047U, +  .init         = DAC_SAMPLE_MAX,    .datamode     = DAC_DHRM_12BIT_RIGHT  }; @@ -375,7 +260,7 @@ static const DACConversionGroup dacgrpcfg1 = {  };  static const DACConfig dac1cfg2 = { -  .init         = 2047U, +  .init         = DAC_SAMPLE_MAX,    .datamode     = DAC_DHRM_12BIT_RIGHT  }; | 
