aboutsummaryrefslogtreecommitdiffstats
path: root/src/cw-example/main.c
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-06 23:38:02 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-06 23:38:02 +0100
commit8b44ef31f8c8520b9da03d7f7f5c91e86b6eb09f (patch)
treedbab60a2fea745280c382833e7d141a50386ce28 /src/cw-example/main.c
parent8fc986d443a4ed9656d3c9479841de3e49d1abe4 (diff)
downloadglutte-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.c57
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;