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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 delta 29103 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 VNlC)9nF+iz091K{FeoK}XaKQm2w4CC diff --git a/firmware.bin b/firmware.bin index 1e92ca4effa06dff822352786235687d3ed07f14..85b85c8a76f3cd1b8e92ed63defcae7b53fb9b67 100644 GIT binary patch delta 14556 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

v@TR_$kp_=RVmpYqXy=D9Bay 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 D=}|Nv 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));