From 125d11fa4648ef4655a4062bba5ea9deb2912346 Mon Sep 17 00:00:00 2001 From: Eduard Iten Date: Fri, 27 Feb 2026 13:11:00 +0100 Subject: [PATCH] sync --- firmware/VERSION | 2 +- firmware/src/audio.c | 6 +++--- firmware/src/audio.h | 4 ++-- firmware/src/fs.c | 1 + firmware/src/main.c | 1 + firmware/src/protocol.c | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/firmware/VERSION b/firmware/VERSION index e16ca64..4e53074 100644 --- a/firmware/VERSION +++ b/firmware/VERSION @@ -1,5 +1,5 @@ VERSION_MAJOR = 0 VERSION_MINOR = 1 -PATCHLEVEL = 1 +PATCHLEVEL = 8 VERSION_TWEAK = 0 EXTRAVERSION = 0 \ No newline at end of file diff --git a/firmware/src/audio.c b/firmware/src/audio.c index 5e23fc0..b08b97d 100644 --- a/firmware/src/audio.c +++ b/firmware/src/audio.c @@ -13,7 +13,7 @@ LOG_MODULE_REGISTER(audio, LOG_LEVEL_INF); /* Dauer eines Blocks in ms (4096 Bytes / (16kHz * 2 Kanäle * 2 Bytes)) = 64 ms */ -#define BLOCK_DURATION_MS 64 +#define BLOCK_DURATION_MS ((AUDIO_BLOCK_SIZE * 1000) / (AUDIO_SAMPLE_RATE * 2 * (AUDIO_WORD_WIDTH / 8))) #define MAX_WAIT_TIME_MS (3 * BLOCK_DURATION_MS) /* Slab für I2S. Keine weiteren Queues oder Threads nötig. */ @@ -93,14 +93,14 @@ void audio_refresh_file_count(void) static void wait_for_i2s_drain(void) { - /* Maximale Wartezeit berechnen (8 Blöcke * 64ms = 512ms + Toleranz) */ + /* Maximale Wartezeit berechnen */ int64_t deadline = k_uptime_get() + (AUDIO_BLOCK_COUNT * BLOCK_DURATION_MS) + 100; while (k_mem_slab_num_free_get(&audio_slab) < AUDIO_BLOCK_COUNT) { if (k_uptime_get() >= deadline) { - LOG_WRN("Timeout waiting for I2S drain"); + LOG_WRN("Timeout waiting for I2S drain, used slabs: %u", AUDIO_BLOCK_COUNT - k_mem_slab_num_free_get(&audio_slab)); break; } k_sleep(K_MSEC(10)); diff --git a/firmware/src/audio.h b/firmware/src/audio.h index 2c47101..f927690 100644 --- a/firmware/src/audio.h +++ b/firmware/src/audio.h @@ -10,8 +10,8 @@ #define AUDIO_THREAD_PRIORITY 5 #define AUDIO_EVENTS_MASK (AUDIO_EVENT_PLAY | AUDIO_EVENT_STOP | AUDIO_EVENT_SYNC) -#define AUDIO_BLOCK_SIZE 4096 -#define AUDIO_BLOCK_COUNT 8 +#define AUDIO_BLOCK_SIZE 8192 /* 512 Samples Stereo (16-bit) = 8192 Bytes */ +#define AUDIO_BLOCK_COUNT 4 #define AUDIO_WORD_WIDTH 16 #define AUDIO_SAMPLE_RATE 16000 diff --git a/firmware/src/fs.c b/firmware/src/fs.c index 786673a..e66e7c6 100644 --- a/firmware/src/fs.c +++ b/firmware/src/fs.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include LOG_MODULE_REGISTER(buzz_fs, LOG_LEVEL_INF); diff --git a/firmware/src/main.c b/firmware/src/main.c index 5cfbc5e..25adcbc 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include diff --git a/firmware/src/protocol.c b/firmware/src/protocol.c index ad58f38..598b136 100644 --- a/firmware/src/protocol.c +++ b/firmware/src/protocol.c @@ -14,7 +14,7 @@ #define PROTOCOL_VERSION 1 -LOG_MODULE_REGISTER(protocol, LOG_LEVEL_DBG); +LOG_MODULE_REGISTER(protocol, LOG_LEVEL_INF); #define PROTOCOL_STACK_SIZE 2048 #define PROTOCOL_PRIORITY 5