diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-12-06 23:38:02 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-12-06 23:38:02 +0100 |
commit | 8b44ef31f8c8520b9da03d7f7f5c91e86b6eb09f (patch) | |
tree | dbab60a2fea745280c382833e7d141a50386ce28 /src/cw-example/main.c | |
parent | 8fc986d443a4ed9656d3c9479841de3e49d1abe4 (diff) | |
download | glutte-o-matic-8b44ef31f8c8520b9da03d7f7f5c91e86b6eb09f.tar.gz glutte-o-matic-8b44ef31f8c8520b9da03d7f7f5c91e86b6eb09f.tar.bz2 glutte-o-matic-8b44ef31f8c8520b9da03d7f7f5c91e86b6eb09f.zip |
Fix interrupt prio, add tone test
Diffstat (limited to 'src/cw-example/main.c')
-rw-r--r-- | src/cw-example/main.c | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/src/cw-example/main.c b/src/cw-example/main.c index ce1f9c6..456d4fe 100644 --- a/src/cw-example/main.c +++ b/src/cw-example/main.c @@ -97,50 +97,55 @@ static void detect_button_press(void *pvParameters) while (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 0) { vTaskDelay(100 / portTICK_RATE_MS); /* Button Debounce Delay */ } - } + taskYIELD(); } } #define AUDIO_BUF_LEN 4096 -static int16_t audio_buffer0[AUDIO_BUF_LEN]; -static int16_t audio_buffer1[AUDIO_BUF_LEN]; -static void audio_task(void *pvParameters) +static void audio_callback(void* context, int select_buffer) { + static int16_t audio_buffer0[AUDIO_BUF_LEN]; + static int16_t audio_buffer1[AUDIO_BUF_LEN]; + int16_t *samples; + + if (select_buffer == 0) { + samples = audio_buffer0; + GPIO_SetBits(GPIOD, GPIO_Pin_13); + GPIO_ResetBits(GPIOD, GPIO_Pin_14); + select_buffer = 1; + } else { + samples = audio_buffer1; + GPIO_SetBits(GPIOD, GPIO_Pin_14); + GPIO_ResetBits(GPIOD, GPIO_Pin_13); + select_buffer = 0; + } - int select_buffer = 0; + size_t samples_len = cw_fill_buffer(samples, AUDIO_BUF_LEN); - while (1) { - int16_t *samples; - - if (select_buffer == 0) { - samples = audio_buffer0; - GPIO_SetBits(GPIOD, GPIO_Pin_13); - GPIO_ResetBits(GPIOD, GPIO_Pin_14); - select_buffer = 1; - } else { - samples = audio_buffer1; - GPIO_SetBits(GPIOD, GPIO_Pin_14); - GPIO_ResetBits(GPIOD, GPIO_Pin_13); - select_buffer = 0; + if (samples_len == 0) { + for (int i = 0; i < AUDIO_BUF_LEN; i++) { + samples[i] = 0; } - size_t samples_len = cw_fill_buffer(samples, AUDIO_BUF_LEN); + samples_len = AUDIO_BUF_LEN; + } - if (samples_len == 0) { - for (int i = 0; i < AUDIO_BUF_LEN; i++) { - samples[i] = 0; - } + ProvideAudioBufferWithoutBlocking(samples, samples_len); +} - samples_len = AUDIO_BUF_LEN; - } +static void audio_task(void *pvParameters) +{ + int select_buffer = 0; - ProvideAudioBufferWithoutBlocking(samples, samples_len); + PlayAudioWithCallback(audio_callback, NULL); + while (1) { taskYIELD(); } } + void init() { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; |