From 777117c76b3a784d4441f78d5b988beb8c82380a Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Mon, 18 Sep 2023 08:30:24 +0100 Subject: [PATCH] More counter renames + dual watch active indicator --- app/action.c | 10 +- app/app.c | 220 ++++++++++++++++++++++++++------------------ app/menu.c | 6 +- app/scanner.c | 2 +- app/scanner.h | 2 +- audio.c | 14 +-- audio.h | 2 +- bitmaps.c | 19 +++- bitmaps.h | 3 +- firmware | Bin 165224 -> 165312 bytes firmware.bin | Bin 48880 -> 49044 bytes firmware.packed.bin | Bin 48898 -> 49062 bytes functions.c | 46 ++++----- helper/battery.c | 4 +- helper/battery.h | 4 +- main.c | 15 ++- misc.c | 54 ++++++----- misc.h | 29 +++--- radio.c | 18 ++-- scheduler.c | 53 +++++------ scheduler.h | 25 ----- ui/main.c | 2 +- ui/status.c | 9 +- 23 files changed, 306 insertions(+), 231 deletions(-) delete mode 100644 scheduler.h diff --git a/app/action.c b/app/action.c index 2a957f6..5bb30b5 100644 --- a/app/action.c +++ b/app/action.c @@ -85,16 +85,16 @@ static void ACTION_Monitor(void) if (gScanState != SCAN_OFF) { - ScanPauseDelayIn10msec = 500; // 5 seconds - gScheduleScanListen = false; - gScanPauseMode = true; + ScanPauseDelayIn_10ms = 500; // 5 seconds + gScheduleScanListen = false; + gScanPauseMode = true; } #ifdef ENABLE_NOAA if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF && gIsNoaaMode) { - gNOAA_Countdown = 500; - gScheduleNOAA = false; + gNOAA_Countdown_10ms = 500; // 5 sec + gScheduleNOAA = false; } #endif diff --git a/app/app.c b/app/app.c index 4a6e8fc..97eef6b 100644 --- a/app/app.c +++ b/app/app.c @@ -16,7 +16,6 @@ #include -#include "scheduler.h" #include "app/action.h" #ifdef ENABLE_AIRCOPY #include "app/aircopy.h" @@ -73,9 +72,9 @@ static void APP_CheckForIncoming(void) { if (gCssScanMode != CSS_SCAN_MODE_OFF && gRxReceptionMode == RX_MODE_NONE) { - ScanPauseDelayIn10msec = 100; // 1 second - gScheduleScanListen = false; - gRxReceptionMode = RX_MODE_DETECTED; + ScanPauseDelayIn_10ms = 100; // 1 second + gScheduleScanListen = false; + gRxReceptionMode = RX_MODE_DETECTED; } if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF) @@ -83,8 +82,8 @@ static void APP_CheckForIncoming(void) #ifdef ENABLE_NOAA if (gIsNoaaMode) { - gNOAA_Countdown = 20; - gScheduleNOAA = false; + gNOAA_Countdown_10ms = 20; // 200ms + gScheduleNOAA = false; } #endif @@ -98,8 +97,12 @@ static void APP_CheckForIncoming(void) return; } - gDualWatchCountdown = dual_watch_count_after_rx_10ms; - gScheduleDualWatch = false; + gDualWatchCountdown_10ms = dual_watch_count_after_rx_10ms; + gDualWatchCountdownExpired = false; + + // let the user see DW is not active + gDualWatchActive = false; + gUpdateStatus = true; } else { @@ -109,8 +112,8 @@ static void APP_CheckForIncoming(void) return; } - ScanPauseDelayIn10msec = 20; // 200ms - gScheduleScanListen = false; + ScanPauseDelayIn_10ms = 20; // 200ms + gScheduleScanListen = false; } gRxReceptionMode = RX_MODE_DETECTED; @@ -132,10 +135,10 @@ static void APP_HandleIncoming(void) bFlag = (gScanState == SCAN_OFF && gCurrentCodeType == CODE_TYPE_OFF); #ifdef ENABLE_NOAA - if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gSystickCountdown2) + if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gNOAACountdown_10ms > 0) { - bFlag = true; - gSystickCountdown2 = 0; + gNOAACountdown_10ms = 0; + bFlag = true; } #endif @@ -163,9 +166,15 @@ static void APP_HandleIncoming(void) { if (gRxReceptionMode == RX_MODE_DETECTED) { - gDualWatchCountdown = dual_watch_count_after_1_10ms; - gScheduleDualWatch = false; - gRxReceptionMode = RX_MODE_LISTENING; + gDualWatchCountdown_10ms = dual_watch_count_after_1_10ms; + gDualWatchCountdownExpired = false; + + gRxReceptionMode = RX_MODE_LISTENING; + + // let the user see DW is not active + gDualWatchActive = false; + gUpdateStatus = true; + return; } } @@ -183,7 +192,7 @@ static void APP_HandleReceive(void) uint8_t Mode = END_OF_RX_MODE_SKIP; - if (gFlagTteComplete) + if (gFlagTailNoteEliminationComplete) { Mode = END_OF_RX_MODE_END; goto Skip; @@ -205,7 +214,7 @@ static void APP_HandleReceive(void) break; case CODE_TYPE_CONTINUOUS_TONE: - if (gFoundCTCSS && gFoundCTCSSCountdown == 0) + if (gFoundCTCSS && gFoundCTCSSCountdown_10ms == 0) { gFoundCTCSS = false; gFoundCDCSS = false; @@ -216,7 +225,7 @@ static void APP_HandleReceive(void) case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - if (gFoundCDCSS && gFoundCDCSSCountdown == 0) + if (gFoundCDCSS && gFoundCDCSSCountdown_10ms == 0) { gFoundCTCSS = false; gFoundCDCSS = false; @@ -255,8 +264,8 @@ static void APP_HandleReceive(void) else if (!gFoundCTCSS) { - gFoundCTCSS = true; - gFoundCTCSSCountdown = 100; + gFoundCTCSS = true; + gFoundCTCSSCountdown_10ms = 100; // 1 sec } if (g_CxCSS_TAIL_Found) @@ -275,8 +284,8 @@ static void APP_HandleReceive(void) else if (!gFoundCDCSS) { - gFoundCDCSS = true; - gFoundCDCSSCountdown = 100; + gFoundCDCSS = true; + gFoundCDCSSCountdown_10ms = 100; // 1 sec } if (g_CxCSS_TAIL_Found) @@ -315,7 +324,7 @@ Skip: #ifdef ENABLE_NOAA if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE)) - gSystickCountdown2 = 300; + gNOAACountdown_10ms = 300; // 3 sec #endif gUpdateDisplay = true; @@ -328,8 +337,8 @@ Skip: break; case SCAN_RESUME_CO: - ScanPauseDelayIn10msec = 360; - gScheduleScanListen = false; + ScanPauseDelayIn_10ms = 360; + gScheduleScanListen = false; break; case SCAN_RESUME_SE: @@ -345,10 +354,10 @@ Skip: { GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gTailNoteEliminationCountdown = 20; - gFlagTteComplete = false; - gEnableSpeaker = false; - gEndOfRxDetectedMaybe = true; + gTailNoteEliminationCountdown_10ms = 20; + gFlagTailNoteEliminationComplete = false; + gEndOfRxDetectedMaybe = true; + gEnableSpeaker = false; } break; } @@ -407,16 +416,16 @@ void APP_StartListening(FUNCTION_Type_t Function) case SCAN_RESUME_TO: if (!gScanPauseMode) { - ScanPauseDelayIn10msec = 500; - gScheduleScanListen = false; - gScanPauseMode = true; + ScanPauseDelayIn_10ms = 500; + gScheduleScanListen = false; + gScanPauseMode = true; } break; case SCAN_RESUME_CO: case SCAN_RESUME_SE: - ScanPauseDelayIn10msec = 0; - gScheduleScanListen = false; + ScanPauseDelayIn_10ms = 0; + gScheduleScanListen = false; break; } @@ -430,7 +439,7 @@ void APP_StartListening(FUNCTION_Type_t Function) gRxVfo->pRX->Frequency = NoaaFrequencyTable[gNoaaChannel]; gRxVfo->pTX->Frequency = NoaaFrequencyTable[gNoaaChannel]; gEeprom.ScreenChannel[gEeprom.RX_CHANNEL] = gRxVfo->CHANNEL_SAVE; - gNOAA_Countdown = 500; + gNOAA_Countdown_10ms = 500; // 5 sec gScheduleNOAA = false; } #endif @@ -440,9 +449,14 @@ void APP_StartListening(FUNCTION_Type_t Function) if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) { - gRxVfoIsActive = true; - gDualWatchCountdown = dual_watch_count_after_2_10ms; - gScheduleDualWatch = false; + gDualWatchCountdown_10ms = dual_watch_count_after_2_10ms; + gDualWatchCountdownExpired = false; + + gRxVfoIsActive = true; + + // let the user see DW is not active + gDualWatchActive = false; + gUpdateStatus = true; } if (gRxVfo->IsAM) @@ -531,9 +545,9 @@ static void FREQ_NextChannel(void) RADIO_ConfigureSquelchAndOutputPower(gRxVfo); RADIO_SetupRegisters(true); - gUpdateDisplay = true; - ScanPauseDelayIn10msec = 10; - bScanKeepFrequency = false; + gUpdateDisplay = true; + ScanPauseDelayIn_10ms = 10; + bScanKeepFrequency = false; } static void MR_NextChannel(void) @@ -587,9 +601,9 @@ Skip: gUpdateDisplay = true; } - ScanPauseDelayIn10msec = 20; + ScanPauseDelayIn_10ms = 20; - bScanKeepFrequency = false; + bScanKeepFrequency = false; if (bEnabled) if (++gCurrentScanList >= 2) @@ -629,10 +643,16 @@ static void DUALWATCH_Alternate(void) RADIO_SetupRegisters(false); #ifdef ENABLE_NOAA - gDualWatchCountdown = gIsNoaaMode ? dual_watch_count_noaa_10ms : dual_watch_count_toggle_10ms; + gDualWatchCountdown_10ms = gIsNoaaMode ? dual_watch_count_noaa_10ms : dual_watch_count_toggle_10ms; #else - gDualWatchCountdown = dual_watch_count_toggle_10ms; + gDualWatchCountdown_10ms = dual_watch_count_toggle_10ms; #endif + + if (!gDualWatchActive) + { // let the user see DW is active + gDualWatchActive = true; + gUpdateStatus = true; + } } void APP_CheckRadioInterrupts(void) @@ -718,14 +738,18 @@ void APP_CheckRadioInterrupts(void) { if (gCurrentFunction == FUNCTION_POWER_SAVE && !gRxIdleMode) { - gBatterySave = 20; - gBatterySaveCountdownExpired = false; + gBatterySave_10ms = 20; // 200ms + gBatterySaveExpired = false; } - if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && (gScheduleDualWatch || gDualWatchCountdown < dual_watch_count_after_vox_10ms)) + if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && (gBatterySaveCountdownExpired || gDualWatchCountdown_10ms < dual_watch_count_after_vox_10ms)) { - gDualWatchCountdown = dual_watch_count_after_vox_10ms; - gScheduleDualWatch = false; + gDualWatchCountdown_10ms = dual_watch_count_after_vox_10ms; + gDualWatchCountdownExpired = false; + + // let the user see DW is not active + gDualWatchActive = false; + gUpdateStatus = true; } } } @@ -816,9 +840,9 @@ static void APP_HandleVox(void) if (gVOX_NoiseDetected) { if (g_VOX_Lost) - gVoxStopCountdown = 100; + gVoxStopCountdown_10ms = 100; // 1 sec else - if (gVoxStopCountdown == 0) + if (gVoxStopCountdown_10ms == 0) gVOX_NoiseDetected = false; if (gCurrentFunction == FUNCTION_TRANSMIT && !gPttIsPressed && !gVOX_NoiseDetected) @@ -943,28 +967,30 @@ void APP_Update(void) NOAA_IncreaseChannel(); RADIO_SetupRegisters(false); - gScheduleNOAA = false; - gNOAA_Countdown = 7; + gNOAA_Countdown_10ms = 7; // 70ms + gScheduleNOAA = false; } #endif + // toggle between the VFO's if dual watch is enabled if (gScreenToDisplay != DISPLAY_SCANNER && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) { #ifdef ENABLE_VOICE - if (gScheduleDualWatch && gVoiceWriteIndex == 0) + if (gDualWatchCountdownExpired && gVoiceWriteIndex == 0) #else - if (gScheduleDualWatch) + if (gDualWatchCountdownExpired) #endif { if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF) { - #ifdef ENABLE_FMRADIO - if (!gPttIsPressed && !gFmRadioMode && gDTMF_CallState == DTMF_CALL_STATE_NONE && gCurrentFunction != FUNCTION_POWER_SAVE) - #else - if (!gPttIsPressed && gDTMF_CallState == DTMF_CALL_STATE_NONE && gCurrentFunction != FUNCTION_POWER_SAVE) - #endif + if (!gPttIsPressed && + #ifdef ENABLE_FMRADIO + !gFmRadioMode && + #endif + gDTMF_CallState == DTMF_CALL_STATE_NONE && + gCurrentFunction != FUNCTION_POWER_SAVE) { - gScheduleDualWatch = false; + gDualWatchCountdownExpired = false; DUALWATCH_Alternate(); // toggle between the two VFO's @@ -994,7 +1020,7 @@ void APP_Update(void) if (gEeprom.VOX_SWITCH) APP_HandleVox(); - if (gSchedulePowerSave) + if (gBatterySaveCountdownExpired) { #ifdef ENABLE_NOAA if ( @@ -1008,12 +1034,20 @@ void APP_Update(void) gCssScanMode != CSS_SCAN_MODE_OFF || gScreenToDisplay != DISPLAY_MAIN || gDTMF_CallState != DTMF_CALL_STATE_NONE) - gBatterySaveCountdown = battery_save_count_10ms; + { + gBatterySaveCountdown_10ms = battery_save_count_10ms; + gBatterySaveCountdownExpired = false; + } else if ((IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[0]) && IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[1])) || !gIsNoaaMode) + { FUNCTION_Select(FUNCTION_POWER_SAVE); + } else - gBatterySaveCountdown = battery_save_count_10ms; + { + gBatterySaveCountdown_10ms = battery_save_count_10ms; + gBatterySaveCountdownExpired = false; + } #else if ( #ifdef ENABLE_FMRADIO @@ -1026,18 +1060,21 @@ void APP_Update(void) gCssScanMode != CSS_SCAN_MODE_OFF || gScreenToDisplay != DISPLAY_MAIN || gDTMF_CallState != DTMF_CALL_STATE_NONE) - gBatterySaveCountdown = battery_save_count_10ms; + { + gBatterySaveCountdown_10ms = battery_save_count_10ms; + gBatterySaveCountdownExpired = false; + } else + { FUNCTION_Select(FUNCTION_POWER_SAVE); + } #endif - - gSchedulePowerSave = false; } #ifdef ENABLE_VOICE - if (gBatterySaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE && gVoiceWriteIndex == 0) + if (gBatterySaveExpired && gCurrentFunction == FUNCTION_POWER_SAVE && gVoiceWriteIndex == 0) #else - if (gBatterySaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE) + if (gBatterySaveExpired && gCurrentFunction == FUNCTION_POWER_SAVE) #endif { if (gRxIdleMode) @@ -1050,13 +1087,16 @@ void APP_Update(void) if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF) { DUALWATCH_Alternate(); // toggle between the two VFO's + gUpdateRSSI = false; } FUNCTION_Init(); - gBatterySave = 10; - gRxIdleMode = false; + gBatterySave_10ms = 10; // 100ms + gBatterySaveExpired = false; + + gRxIdleMode = false; } else if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF || gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gUpdateRSSI) @@ -1064,8 +1104,10 @@ void APP_Update(void) gCurrentRSSI = BK4819_GetRSSI(); UI_UpdateRSSI(gCurrentRSSI); - gBatterySave = gEeprom.BATTERY_SAVE * 10; - gRxIdleMode = true; + gBatterySave_10ms = gEeprom.BATTERY_SAVE * 10; + gBatterySaveExpired = false; + + gRxIdleMode = true; BK4819_DisableVox(); BK4819_Sleep(); @@ -1078,11 +1120,11 @@ void APP_Update(void) { DUALWATCH_Alternate(); // toggle between the two VFO's - gUpdateRSSI = true; - gBatterySave = 10; - } + gUpdateRSSI = true; - gBatterySaveCountdownExpired = false; + gBatterySave_10ms = 10; // 100ms + gBatterySaveExpired = false; + } } } @@ -1144,6 +1186,7 @@ void APP_CheckKeys(void) { // PTT pressed if (++gPttDebounceCounter >= 3) // 30ms { // start transmitting + boot_counter_10ms = 0; gPttDebounceCounter = 0; gPttIsPressed = true; APP_ProcessKey(KEY_PTT, true, false); @@ -1157,6 +1200,9 @@ void APP_CheckKeys(void) // scan the hardware keys Key = KEYBOARD_Poll(); + if (Key != KEY_INVALID) + boot_counter_10ms = 0; + if (gKeyReading0 != Key) { // new key pressed @@ -1233,8 +1279,8 @@ void APP_TimeSlice10ms(void) gFlashLightBlinkCounter++; #ifdef ENABLE_BOOT_BEEPS - if (boot_counter < 255) - if ((boot_counter % 25) == 0) + if (boot_counter_10ms > 0) + if ((boot_counter_10ms % 25) == 0) AUDIO_PlayBeep(BEEP_880HZ_40MS_OPTIONAL); #endif @@ -1783,11 +1829,11 @@ void CHANNEL_Next(bool bFlag, int8_t Direction) FREQ_NextChannel(); } - ScanPauseDelayIn10msec = 50; // 500ms - gScheduleScanListen = false; - gRxReceptionMode = RX_MODE_NONE; - gScanPauseMode = false; - bScanKeepFrequency = false; + ScanPauseDelayIn_10ms = 50; // 500ms + gScheduleScanListen = false; + gRxReceptionMode = RX_MODE_NONE; + gScanPauseMode = false; + bScanKeepFrequency = false; } static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) @@ -1797,7 +1843,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) if (gCurrentFunction == FUNCTION_POWER_SAVE) FUNCTION_Select(FUNCTION_FOREGROUND); - gBatterySaveCountdown = battery_save_count_10ms; + gBatterySaveCountdown_10ms = battery_save_count_10ms; if (gEeprom.AUTO_KEYPAD_LOCK) gKeyLockCountdown = 30; // 15 seconds diff --git a/app/menu.c b/app/menu.c index 7c4f89b..46a6bd3 100644 --- a/app/menu.c +++ b/app/menu.c @@ -131,8 +131,8 @@ void MENU_StartCssScan(int8_t Direction) MENU_SelectNextCode(); - ScanPauseDelayIn10msec = 50; - gScheduleScanListen = false; + ScanPauseDelayIn_10ms = 50; + gScheduleScanListen = false; } void MENU_StopCssScan(void) @@ -746,7 +746,7 @@ void MENU_SelectNextCode(void) RADIO_SetupRegisters(true); - ScanPauseDelayIn10msec = (gSelectedCodeType == CODE_TYPE_CONTINUOUS_TONE) ? 20 : 30; + ScanPauseDelayIn_10ms = (gSelectedCodeType == CODE_TYPE_CONTINUOUS_TONE) ? 20 : 30; gUpdateDisplay = true; } diff --git a/app/scanner.c b/app/scanner.c index b673e8d..b23faa8 100644 --- a/app/scanner.c +++ b/app/scanner.c @@ -36,7 +36,7 @@ uint32_t gScanFrequency; bool gScanPauseMode; SCAN_CssState_t gScanCssState; volatile bool gScheduleScanListen = true; -volatile uint16_t ScanPauseDelayIn10msec; +volatile uint16_t ScanPauseDelayIn_10ms; uint8_t gScanProgressIndicator; uint8_t gScanHitCount; bool gScanUseCssResult; diff --git a/app/scanner.h b/app/scanner.h index cb4ebe2..4caa9b3 100644 --- a/app/scanner.h +++ b/app/scanner.h @@ -46,7 +46,7 @@ extern uint32_t gScanFrequency; extern bool gScanPauseMode; extern SCAN_CssState_t gScanCssState; extern volatile bool gScheduleScanListen; -extern volatile uint16_t ScanPauseDelayIn10msec; +extern volatile uint16_t ScanPauseDelayIn_10ms; extern uint8_t gScanProgressIndicator; extern uint8_t gScanHitCount; extern bool gScanUseCssResult; diff --git a/audio.c b/audio.c index a8e7f96..8cff55f 100644 --- a/audio.c +++ b/audio.c @@ -62,7 +62,7 @@ VOICE_ID_t gVoiceID[8]; uint8_t gVoiceReadIndex; uint8_t gVoiceWriteIndex; - volatile uint16_t gCountdownToPlayNextVoice; + volatile uint16_t gCountdownToPlayNextVoice_10ms; volatile bool gFlagPlayQueuedVoice; VOICE_ID_t gAnotherVoiceID = VOICE_ID_INVALID; @@ -283,9 +283,9 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep) return; } - gVoiceReadIndex = 1; - gCountdownToPlayNextVoice = Delay; - gFlagPlayQueuedVoice = false; + gVoiceReadIndex = 1; + gCountdownToPlayNextVoice_10ms = Delay; + gFlagPlayQueuedVoice = false; return; } @@ -390,9 +390,9 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep) AUDIO_PlayVoice(VoiceID); - gCountdownToPlayNextVoice = Delay; - gFlagPlayQueuedVoice = false; - gVoxResumeCountdown = 2000; + gCountdownToPlayNextVoice_10ms = Delay; + gFlagPlayQueuedVoice = false; + gVoxResumeCountdown = 2000; return; } diff --git a/audio.h b/audio.h index fa3efa8..bb4027b 100644 --- a/audio.h +++ b/audio.h @@ -132,7 +132,7 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep); extern VOICE_ID_t gVoiceID[8]; extern uint8_t gVoiceReadIndex; extern uint8_t gVoiceWriteIndex; - extern volatile uint16_t gCountdownToPlayNextVoice; + extern volatile uint16_t gCountdownToPlayNextVoice_10ms; extern volatile bool gFlagPlayQueuedVoice; extern VOICE_ID_t gAnotherVoiceID; diff --git a/bitmaps.c b/bitmaps.c index a22bd90..4cd5b80 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -227,7 +227,7 @@ const uint8_t BITMAP_VOX[] = }; #endif -const uint8_t BITMAP_TDR[] = +const uint8_t BITMAP_TDR1[] = { // "DW" 0b00000000, 0b01111111, @@ -244,6 +244,23 @@ const uint8_t BITMAP_TDR[] = 0b01111111 }; +const uint8_t BITMAP_TDR2[] = +{ // "--" + 0b00000000, + 0b00010000, + 0b00010000, + 0b00010000, + 0b00010000, + 0b00010000, + + 0b00010000, + 0b00010000, + 0b00010000, + 0b00010000, + 0b00010000, + 0b00010000, +}; + #ifdef ENABLE_VOICE const uint8_t BITMAP_VoicePrompt[] = { diff --git a/bitmaps.h b/bitmaps.h index 082b386..c48e8c3 100644 --- a/bitmaps.h +++ b/bitmaps.h @@ -26,7 +26,8 @@ extern const uint8_t BITMAP_VOX[18]; extern const uint8_t BITMAP_XB[12]; #endif -extern const uint8_t BITMAP_TDR[12]; +extern const uint8_t BITMAP_TDR1[12]; +extern const uint8_t BITMAP_TDR2[12]; #ifdef ENABLE_VOICE extern const uint8_t BITMAP_VoicePrompt[9]; diff --git a/firmware b/firmware index b5a7395b2d91135345519346f9c7ef63fdfb32c7..2309ae1859cf5311f9780b27167e240412ddd95c 100644 GIT binary patch delta 29173 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 XrWRKrv!=IPRzB$h+ME3HM*V*S9|NnG diff --git a/firmware.packed.bin b/firmware.packed.bin index 6c26c9cc461a4c7360514310f00678ebf1c0a6eb..114d69ec42e95e9a28f6be519a6027b5985578ae 100644 GIT binary patch delta 39796 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 D<*P)# delta 39631 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 QB(Ve4VKolUh5;P^1L;vT9{>OV diff --git a/functions.c b/functions.c index 32fb1d8..7bb8a79 100644 --- a/functions.c +++ b/functions.c @@ -64,22 +64,24 @@ void FUNCTION_Init(void) // gDTMF_ReceivedSaved[0] = '\0'; #endif - g_CxCSS_TAIL_Found = false; - g_CDCSS_Lost = false; - g_CTCSS_Lost = false; + g_CxCSS_TAIL_Found = false; + g_CDCSS_Lost = false; + g_CTCSS_Lost = false; + + g_VOX_Lost = false; + g_SquelchLost = false; - g_VOX_Lost = false; - g_SquelchLost = false; - gFlagTteComplete = false; + gFlagTailNoteEliminationComplete = false; + gTailNoteEliminationCountdown_10ms = 0; + gFoundCTCSS = false; + gFoundCDCSS = false; + gFoundCTCSSCountdown_10ms = 0; + gFoundCDCSSCountdown_10ms = 0; + gEndOfRxDetectedMaybe = false; - gTailNoteEliminationCountdown = 0; - gFoundCTCSS = false; - gFoundCDCSS = false; - gFoundCTCSSCountdown = 0; - gFoundCDCSSCountdown = 0; - gEndOfRxDetectedMaybe = false; - - gSystickCountdown2 = 0; + #ifdef ENABLE_NOAA + gNOAACountdown_10ms = 0; + #endif } void FUNCTION_Select(FUNCTION_Type_t Function) @@ -132,15 +134,16 @@ void FUNCTION_Select(FUNCTION_Type_t Function) break; case FUNCTION_POWER_SAVE: - gBatterySave = gEeprom.BATTERY_SAVE * 10; - gRxIdleMode = true; + gBatterySave_10ms = gEeprom.BATTERY_SAVE * 10; + gBatterySaveExpired = false; + + gRxIdleMode = true; BK4819_DisableVox(); BK4819_Sleep(); BK4819_ToggleGpioOut(BK4819_GPIO6_PIN2, false); - gBatterySaveCountdownExpired = false; - gUpdateStatus = true; + gUpdateStatus = true; GUI_SelectNextDisplay(DISPLAY_MAIN); return; @@ -195,9 +198,10 @@ void FUNCTION_Select(FUNCTION_Type_t Function) break; } - gBatterySaveCountdown = battery_save_count_10ms; - gSchedulePowerSave = false; + gBatterySaveCountdown_10ms = battery_save_count_10ms; + gBatterySaveCountdownExpired = false; + #if defined(ENABLE_FMRADIO) - gFM_RestoreCountdown = 0; + gFM_RestoreCountdown = 0; #endif } diff --git a/helper/battery.c b/helper/battery.c index fd89cd0..ebef8cc 100644 --- a/helper/battery.c +++ b/helper/battery.c @@ -31,7 +31,9 @@ bool gChargingWithTypeC; bool gLowBattery; bool gLowBatteryBlink; uint16_t gBatteryCheckCounter; -volatile uint16_t gBatterySave; + +volatile uint16_t gBatterySave_10ms; +volatile bool gBatterySaveExpired; void BATTERY_GetReadings(bool bDisplayBatteryLevel) { diff --git a/helper/battery.h b/helper/battery.h index f7f12dd..a824731 100644 --- a/helper/battery.h +++ b/helper/battery.h @@ -30,7 +30,9 @@ extern bool gChargingWithTypeC; extern bool gLowBattery; extern bool gLowBatteryBlink; extern uint16_t gBatteryCheckCounter; -extern volatile uint16_t gBatterySave; + +extern volatile uint16_t gBatterySave_10ms; +extern volatile bool gBatterySaveExpired; void BATTERY_GetReadings(bool bDisplayBatteryLevel); diff --git a/main.c b/main.c index bf9e3d3..61dd2ea 100644 --- a/main.c +++ b/main.c @@ -16,7 +16,6 @@ #include -#include "scheduler.h" #include "app/app.h" #include "app/dtmf.h" #include "audio.h" @@ -98,6 +97,10 @@ void Main(void) gMenuListCount = 0; + #ifdef ENABLE_BOOT_BEEPS + boot_counter_10ms = 250; // 2.5 sec + #endif + if (!gChargingWithTypeC && !gBatteryDisplayLevel) { FUNCTION_Select(FUNCTION_POWER_SAVE); @@ -124,14 +127,18 @@ void Main(void) if (gEeprom.POWER_ON_DISPLAY_MODE != POWER_ON_DISPLAY_MODE_NONE) { // 2.55 second boot-up screen - while (boot_counter < 255 && KEYBOARD_Poll() == KEY_INVALID) + while (boot_counter_10ms > 0) { + if (KEYBOARD_Poll() != KEY_INVALID) + { // halt boot beeps + boot_counter_10ms = 0; + break; + } #ifdef ENABLE_BOOT_BEEPS - if ((boot_counter % 25) == 0) + if ((boot_counter_10ms % 25) == 0) AUDIO_PlayBeep(BEEP_880HZ_40MS_OPTIONAL); #endif } - //boot_counter = 255; // halt boot beeps } BootMode = BOOT_GetMode(); diff --git a/misc.c b/misc.c index 28b0a10..6271925 100644 --- a/misc.c +++ b/misc.c @@ -22,38 +22,38 @@ const uint8_t fm_resume_countdown_500ms = 2500 / 500; // 2.5 second const uint8_t fm_radio_countdown_500ms = 2000 / 500; // 2 seconds const uint16_t fm_play_countdown_scan_10ms = 100 / 10; // 100ms const uint16_t fm_play_countdown_noscan_10ms = 1200 / 10; // 1.2 seconds - + const uint8_t menu_timeout_500ms = 20000 / 500; // 20 seconds - + const uint8_t DTMF_RX_timeout_500ms = 2500 / 500; // 2.5 seconds const uint8_t DTMF_RX_timeout_saved_500ms = 20000 / 500; // 20 seconds const uint8_t DTMF_decode_ring_countdown_500ms = 15000 / 500; // 15 seconds const uint8_t DTMF_txstop_countdown_500ms = 3000 / 500; // 6 seconds const uint8_t key_input_timeout_500ms = 8000 / 500; // 8 seconds - + const uint16_t key_repeat_delay_10ms = 400 / 10; // 400ms const uint16_t key_repeat_10ms = 80 / 10; // 80ms .. MUST be less than 'key_repeat_delay' const uint16_t key_debounce_10ms = 20 / 10; // 20ms - + const uint8_t scan_delay_10ms = 210 / 10; // 210ms - -// 10ms count down resolution + +// 10ms count down resolution const uint16_t dual_watch_count_after_tx_10ms = 3600 / 10; // 3.6 sec after TX ends const uint16_t dual_watch_count_after_rx_10ms = 1000 / 10; // 1 sec after RX ends ? const uint16_t dual_watch_count_after_1_10ms = 5000 / 10; // 5 sec const uint16_t dual_watch_count_after_2_10ms = 3600 / 10; // 3.6 sec -const uint16_t dual_watch_count_toggle_10ms = 100 / 10; // 100ms between VFO toggles const uint16_t dual_watch_count_noaa_10ms = 70 / 10; // 70ms const uint16_t dual_watch_count_after_vox_10ms = 200 / 10; // 200ms - +const uint16_t dual_watch_count_toggle_10ms = 100 / 10; // 100ms between VFO toggles + const uint16_t battery_save_count_10ms = 10000 / 10; // 10 seconds - + const uint16_t gMax_bat_v = 843; // 8.43V const uint16_t gMin_bat_v = 660; // 6.6V const uint32_t gDefaultAesKey[4] = {0x4AA5CC60, 0x0312CC5F, 0xFFD2DABB, 0x6BBA7F92}; - + const uint8_t gMicGain_dB2[5] = {3, 8, 16, 24, 31}; bool gSetting_350TX; @@ -81,13 +81,18 @@ uint16_t gEEPROM_1F8C; uint8_t gMR_ChannelAttributes[207]; +volatile uint16_t gBatterySaveCountdown_10ms = battery_save_count_10ms; +volatile bool gBatterySaveCountdownExpired; + +volatile uint16_t gDualWatchCountdown_10ms; +volatile bool gDualWatchCountdownExpired = true; +bool gDualWatchActive = false; + volatile bool gNextTimeslice500ms; -volatile uint16_t gBatterySaveCountdown = battery_save_count_10ms; -volatile uint16_t gDualWatchCountdown; volatile uint16_t gTxTimerCountdown; -volatile uint16_t gTailNoteEliminationCountdown; +volatile uint16_t gTailNoteEliminationCountdown_10ms; #ifdef ENABLE_NOAA - volatile uint16_t gNOAA_Countdown; + volatile uint16_t gNOAA_Countdown_10ms; #endif bool gEnableSpeaker; @@ -179,21 +184,22 @@ bool gF_LOCK; uint8_t gShowChPrefix; volatile bool gNextTimeslice; -volatile uint16_t gSystickCountdown2; -volatile uint8_t gFoundCDCSSCountdown; -volatile uint8_t gFoundCTCSSCountdown; -volatile uint16_t gVoxStopCountdown; +volatile uint8_t gFoundCDCSSCountdown_10ms; +volatile uint8_t gFoundCTCSSCountdown_10ms; +volatile uint16_t gVoxStopCountdown_10ms; volatile bool gTxTimeoutReached; volatile bool gNextTimeslice40ms; -volatile bool gSchedulePowerSave; -volatile bool gBatterySaveCountdownExpired; -volatile bool gScheduleDualWatch = true; #ifdef ENABLE_NOAA - volatile bool gScheduleNOAA = true; + volatile uint16_t gNOAACountdown_10ms = 0; + volatile bool gScheduleNOAA = true; #endif -volatile bool gFlagTteComplete; +volatile bool gFlagTailNoteEliminationComplete; #ifdef ENABLE_FMRADIO - volatile bool gScheduleFM; + volatile bool gScheduleFM; +#endif + +#ifdef ENABLE_BOOT_BEEPS + volatile uint8_t boot_counter_10ms; #endif uint16_t gCurrentRSSI; diff --git a/misc.h b/misc.h index 96ad66f..56ccbf8 100644 --- a/misc.h +++ b/misc.h @@ -139,16 +139,21 @@ extern uint16_t gEEPROM_1F8C; extern uint8_t gMR_ChannelAttributes[207]; +extern volatile uint16_t gBatterySaveCountdown_10ms; +extern volatile bool gBatterySaveCountdownExpired; + +extern volatile uint16_t gDualWatchCountdown_10ms; +extern volatile bool gDualWatchCountdownExpired; +extern bool gDualWatchActive; + extern volatile bool gNextTimeslice500ms; -extern volatile uint16_t gBatterySaveCountdown; -extern volatile uint16_t gDualWatchCountdown; extern volatile uint16_t gTxTimerCountdown; -extern volatile uint16_t gTailNoteEliminationCountdown; +extern volatile uint16_t gTailNoteEliminationCountdown_10ms; #ifdef ENABLE_FMRADIO extern volatile uint16_t gFmPlayCountdown_10ms; #endif #ifdef ENABLE_NOAA - extern volatile uint16_t gNOAA_Countdown; + extern volatile uint16_t gNOAA_Countdown_10ms; #endif extern bool gEnableSpeaker; extern uint8_t gKeyInputCountdown; @@ -235,24 +240,24 @@ extern bool gUpdateDisplay; #endif extern bool gF_LOCK; extern uint8_t gShowChPrefix; -extern volatile uint16_t gSystickCountdown2; -extern volatile uint8_t gFoundCDCSSCountdown; -extern volatile uint8_t gFoundCTCSSCountdown; -extern volatile uint16_t gVoxStopCountdown; +extern volatile uint8_t gFoundCDCSSCountdown_10ms; +extern volatile uint8_t gFoundCTCSSCountdown_10ms; +extern volatile uint16_t gVoxStopCountdown_10ms; extern volatile bool gTxTimeoutReached; extern volatile bool gNextTimeslice40ms; -extern volatile bool gSchedulePowerSave; -extern volatile bool gBatterySaveCountdownExpired; -extern volatile bool gScheduleDualWatch; #ifdef ENABLE_NOAA + extern volatile uint16_t gNOAACountdown_10ms; extern volatile bool gScheduleNOAA; #endif -extern volatile bool gFlagTteComplete; +extern volatile bool gFlagTailNoteEliminationComplete; #ifdef ENABLE_FMRADIO extern volatile bool gScheduleFM; #endif extern uint16_t gCurrentRSSI; extern uint8_t gIsLocked; +#ifdef ENABLE_BOOT_BEEPS + extern volatile uint8_t boot_counter_10ms; +#endif void NUMBER_Get(char *pDigits, uint32_t *pInteger); void NUMBER_ToDigits(uint32_t Value, char *pDigits); diff --git a/radio.c b/radio.c index 6b156f1..5d5ed66 100644 --- a/radio.c +++ b/radio.c @@ -767,10 +767,10 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) if (gRxVfo->CHANNEL_SAVE >= NOAA_CHANNEL_FIRST) { - gIsNoaaMode = true; - gNoaaChannel = gRxVfo->CHANNEL_SAVE - NOAA_CHANNEL_FIRST; - gNOAA_Countdown = 50; - gScheduleNOAA = false; + gIsNoaaMode = true; + gNoaaChannel = gRxVfo->CHANNEL_SAVE - NOAA_CHANNEL_FIRST; + gNOAA_Countdown_10ms = 50; // 500ms + gScheduleNOAA = false; } else gIsNoaaMode = false; @@ -877,15 +877,19 @@ void RADIO_PrepareTX(void) { if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) { - gDualWatchCountdown = dual_watch_count_after_tx_10ms; - gScheduleDualWatch = false; + gDualWatchCountdown_10ms = dual_watch_count_after_tx_10ms; + gDualWatchCountdownExpired = false; if (!gRxVfoIsActive) { gEeprom.RX_CHANNEL = gEeprom.TX_CHANNEL; gRxVfo = &gEeprom.VfoInfo[gEeprom.TX_CHANNEL]; + gRxVfoIsActive = true; } - gRxVfoIsActive = true; + + // let the user see that DW is not active + gDualWatchActive = false; + gUpdateStatus = true; } RADIO_SelectCurrentVfo(); diff --git a/scheduler.c b/scheduler.c index 94a6ce7..7b7f35a 100644 --- a/scheduler.c +++ b/scheduler.c @@ -14,7 +14,6 @@ * limitations under the License. */ -#include "scheduler.h" #ifdef ENABLE_FMRADIO #include "app/fm.h" #endif @@ -29,17 +28,20 @@ #include "bsp/dp32g030/gpio.h" #include "driver/gpio.h" +#define DECREMENT(cnt) \ + do { \ + if (cnt > 0) \ + cnt--; \ + } while (0) + #define DECREMENT_AND_TRIGGER(cnt, flag) \ - do { \ - if (cnt) { \ - if (--cnt == 0) { \ - flag = true; \ - } \ - } \ - } while(0) + do { \ + if (cnt > 0) \ + if (--cnt == 0) \ + flag = true; \ + } while (0) static volatile uint32_t gGlobalSysTickCounter; -volatile uint8_t boot_counter = 0; void SystickHandler(void); @@ -59,40 +61,39 @@ void SystickHandler(void) if ((gGlobalSysTickCounter & 3) == 0) gNextTimeslice40ms = true; - if (gSystickCountdown2) - gSystickCountdown2--; + #ifdef ENABLE_NOAA + DECREMENT(gNOAACountdown_10ms); + #endif - if (gFoundCDCSSCountdown) - gFoundCDCSSCountdown--; + DECREMENT(gFoundCDCSSCountdown_10ms); - if (gFoundCTCSSCountdown) - gFoundCTCSSCountdown--; + DECREMENT(gFoundCTCSSCountdown_10ms); if (gCurrentFunction == FUNCTION_FOREGROUND) - DECREMENT_AND_TRIGGER(gBatterySaveCountdown, gSchedulePowerSave); + DECREMENT_AND_TRIGGER(gBatterySaveCountdown_10ms, gBatterySaveCountdownExpired); if (gCurrentFunction == FUNCTION_POWER_SAVE) - DECREMENT_AND_TRIGGER(gBatterySave, gBatterySaveCountdownExpired); + DECREMENT_AND_TRIGGER(gBatterySave_10ms, gBatterySaveExpired); if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE) - DECREMENT_AND_TRIGGER(gDualWatchCountdown, gScheduleDualWatch); + DECREMENT_AND_TRIGGER(gDualWatchCountdown_10ms, gDualWatchCountdownExpired); #ifdef ENABLE_NOAA if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH == DUAL_WATCH_OFF) if (gIsNoaaMode && gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT) if (gCurrentFunction != FUNCTION_RECEIVE) - DECREMENT_AND_TRIGGER(gNOAA_Countdown, gScheduleNOAA); + DECREMENT_AND_TRIGGER(gNOAA_Countdown_10ms, gScheduleNOAA); #endif if (gScanState != SCAN_OFF || gCssScanMode == CSS_SCAN_MODE_SCANNING) if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT) - DECREMENT_AND_TRIGGER(ScanPauseDelayIn10msec, gScheduleScanListen); + DECREMENT_AND_TRIGGER(ScanPauseDelayIn_10ms, gScheduleScanListen); - DECREMENT_AND_TRIGGER(gTailNoteEliminationCountdown, gFlagTteComplete); + DECREMENT_AND_TRIGGER(gTailNoteEliminationCountdown_10ms, gFlagTailNoteEliminationComplete); #ifdef ENABLE_VOICE - DECREMENT_AND_TRIGGER(gCountdownToPlayNextVoice, gFlagPlayQueuedVoice); + DECREMENT_AND_TRIGGER(gCountdownToPlayNextVoice_10ms, gFlagPlayQueuedVoice); #endif #ifdef ENABLE_FMRADIO @@ -101,9 +102,9 @@ void SystickHandler(void) DECREMENT_AND_TRIGGER(gFmPlayCountdown_10ms, gScheduleFM); #endif - if (gVoxStopCountdown) - gVoxStopCountdown--; + DECREMENT(gVoxStopCountdown_10ms); - if (boot_counter < 255) - boot_counter++; + #ifdef ENABLE_BOOT_BEEPS + DECREMENT(boot_counter_10ms); + #endif } diff --git a/scheduler.h b/scheduler.h deleted file mode 100644 index 545c775..0000000 --- a/scheduler.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2023 Dual Tachyon - * https://github.com/DualTachyon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SCHEDULER_H -#define SCHEDULER_H - -#include - -extern volatile uint8_t boot_counter; - -#endif - diff --git a/ui/main.c b/ui/main.c index 148f94d..fcc45bf 100644 --- a/ui/main.c +++ b/ui/main.c @@ -76,7 +76,7 @@ void UI_DisplayMain(void) } if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && gRxVfoIsActive) - Channel = gEeprom.RX_CHANNEL; + Channel = gEeprom.RX_CHANNEL; // we're currently monitoring the other VFO if (Channel != vfo_num) { diff --git a/ui/status.c b/ui/status.c index a4ae278..a61b707 100644 --- a/ui/status.c +++ b/ui/status.c @@ -55,8 +55,13 @@ void UI_DisplayStatus(const bool test_display) #endif if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF || test_display) - memmove(gStatusLine + 45, BITMAP_TDR, sizeof(BITMAP_TDR)); - + { + if (gDualWatchActive) + memmove(gStatusLine + 45, BITMAP_TDR1, sizeof(BITMAP_TDR1)); + else + memmove(gStatusLine + 45, BITMAP_TDR2, sizeof(BITMAP_TDR2)); + } + if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF || test_display) memmove(gStatusLine + 58, BITMAP_XB, sizeof(BITMAP_XB));