From 2448841a540d40389ad18146626f64983ea013ad Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 30 Aug 2023 20:47:14 +0300 Subject: [PATCH] Allow AUDxPER=1 --- audio.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/audio.cpp b/audio.cpp index 4aad7f2b..7127f51f 100644 --- a/audio.cpp +++ b/audio.cpp @@ -54,7 +54,7 @@ #define TEST_MISSED_DMA 0 #define TEST_MANUAL_AUDIO 0 -#define PERIOD_MIN 4 +#define PERIOD_MIN 1 #define PERIOD_MIN_NONCE 60 #define PERIOD_LOW 124 @@ -1570,10 +1570,19 @@ static void loadperm1(int nr) { struct audio_channel_data *cdp = audio_channel + nr; - if (cdp->per > CYCLE_UNIT) { + if (cdp->per == CYCLE_UNIT) { + cdp->evtime = CYCLE_UNIT; + if (isirq(nr)) { + cdp->irqcheck = 1; + } else { + cdp->irqcheck = -1; + } + } else if (cdp->per > CYCLE_UNIT) { cdp->evtime = cdp->per - 1 * CYCLE_UNIT; + cdp->state |= 0x10; } else { - cdp->evtime = 65536 * CYCLE_UNIT + cdp->per; + cdp->evtime = 65536 * CYCLE_UNIT; + cdp->state |= 0x10; } #if DEBUG_AUDIO2 > 0 if (debugchannel(nr)) { @@ -1816,7 +1825,6 @@ static bool audio_state_channel2 (int nr, bool perfin) if (chan_ena) { loadper(nr); } else { - cdp->state |= 0x10; loadperm1(nr); } cdp->pbufldl = false; -- 2.47.3