From 9ebe5b4e56ad349e3c89c59a25e1970248910eac Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Mon, 11 Sep 2023 08:45:29 +0100 Subject: [PATCH] TX disabled when radio set to 'AM' - compile option --- Makefile | 7 ++--- README.md | 11 ++++---- firmware | Bin 172708 -> 172708 bytes firmware.bin | Bin 56808 -> 56816 bytes firmware.packed.bin | Bin 56826 -> 56834 bytes frequencies.c | 64 ++++++++++++++++++++++++++------------------ radio.c | 9 ++++++- scheduler.c | 18 ------------- ui/main.c | 4 +-- 9 files changed, 58 insertions(+), 55 deletions(-) diff --git a/Makefile b/Makefile index 75fd7e7..65b6a5e 100644 --- a/Makefile +++ b/Makefile @@ -93,14 +93,15 @@ LDFLAGS = -mcpu=cortex-m0 -nostartfiles -Wl,-T,firmware.ld #LDFLAGS = -mcpu=cortex-m0 -nostartfiles -Wl,-gc-sections,-T,firmware.ld # compilation options -#CFLAGS += -DBIG_FREQ_FONT +CFLAGS += -DDISABLE_BIG_FREQ CFLAGS += -DDISABLE_NOAA CFLAGS += -DDISABLE_VOICE CFLAGS += -DDISABLE_AIRCOPY -CFLAGS += -DKEEP_MEM_NAME CFLAGS += -DDISABLE_ALARM +CFLAGS += -DKEEP_MEM_NAME CFLAGS += -DCHAN_NAME_FREQ -CFLAGS += -DSINGLE_VFO_CHAN +#CFLAGS += -DENABLE_TX_WHEN_AM +#CFLAGS += -DSINGLE_VFO_CHAN #CFLAGS += -DBAND_SCOPE ifeq ($(DEBUG),1) diff --git a/README.md b/README.md index 40dba20..da45a8f 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,14 @@ Am amazing achievement if you ask me ! This version you can customize at compile time by making various changes to the makefile. You can edit those changes by (currently) editing the MakeFile, look for these lines .. -* CFLAGS += -DBIG_FREQ_FONT .. show frequency using big font +* CFLAGS += -DDISABLE_BIG_FREQ .. show frequencies using smaller font * CFLAGS += -DDISABLE_NOAA .. remove NOAA channels option from the firmware * CFLAGS += -DDISABLE_VOICE .. remove spoken VOICES option from the firmware * CFLAGS += -DDISABLE_AIRCOPY .. remove AIRCOPY option -* CFLAGS += -DKEEP_MEM_NAME .. keep the memory channels name when re-saving a channel * CFLAGS += -DDISABLE_ALARM .. remove the ALARM transmit option from the firmware +* CFLAGS += -DKEEP_MEM_NAME .. keep the memory channels name when re-saving a channel * CFLAGS += -DCHAN_NAME_FREQ .. show the channel frequency (as well as channel number/name) +* #CFLAGS += -DENABLE_TX_WHEN_AM .. enable TX when radio set to AM (radio does NOT do AM, the adverts are false) * #CFLAGS += -DSINGLE_VFO_CHAN .. (not yet implemented) show a single VFO/CHANNEL if dual-watch/cross-band are disabled * #CFLAGS += -DBAND_SCOPE .. (not yet implemented) show a band scope (spectrum/panadapter) @@ -37,11 +38,11 @@ To enable the custom option just uncomment the line by removing the starting '#' * "TXP" menu, renamed to "TX-PWR" * "SAVE" menu, renamed to "B-SAVE" * "WX" menu, renamed to "CROS-B" - 'WX' normally means weather here in the UK -* "ABR" menu, renamed to "BAK-LT", shows extended backlight times, now has always ON option +* "ABR" menu, renamed to "BAK-LT", shows extended backlight times, includes always ON option * "SCR" menu, renamed to "SCRAM" -* "MIC" menu, shows mic gain in dB's, now includes the max mic gain possible (+15.5dB) +* "MIC" menu, shows mic gain in dB's, includes max mic gain possible (+15.5dB) * "VOL" menu, renamed to "BATVOL", shows voltage and percentage -* "AM" menu, renamed to "MODE", shows modulation mode +* "AM" menu, renamed to "MODE", shows RX modulation mode Menu renames are to try and reduce 'WTF does that do/mean ?' diff --git a/firmware b/firmware index 90c7dfbd9eb4a6ce8df91542f2f428d7a43b5c02..f9838594e3d94e416dee6b4cc181fafdcad76576 100644 GIT binary patch delta 7666 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 diff --git a/firmware.bin b/firmware.bin index d38606c63a4199fb5ae4ca1a64cdded06934ebb4..910742f332a6c9bbc6ccede6506660cde8d929a2 100644 GIT binary patch delta 3840 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 KdvnyaK6U`R0|J8p delta 3845 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 Td;SPqcQ@wN?buYi`-BJp;f9}C diff --git a/frequencies.c b/frequencies.c index 3389741..b04cc26 100644 --- a/frequencies.c +++ b/frequencies.c @@ -26,7 +26,7 @@ const uint32_t LowerLimitFrequencyBandTable[7] = 17400000, 35000000, 40000000, - 47000000, + 47000000 }; const uint32_t MiddleFrequencyBandTable[7] = @@ -37,7 +37,7 @@ const uint32_t MiddleFrequencyBandTable[7] = 26000000, 37000000, 43500000, - 55000000, + 55000000 }; const uint32_t UpperLimitFrequencyBandTable[7] = @@ -48,7 +48,7 @@ const uint32_t UpperLimitFrequencyBandTable[7] = 34999990, 39999990, 46999990, - 60000000, + 60000000 }; #ifndef DISABLE_NOAA @@ -63,19 +63,31 @@ const uint32_t UpperLimitFrequencyBandTable[7] = 16252500, 16152500, 16177500, - 16327500, + 16327500 }; #endif -const uint16_t StepFrequencyTable[6] = -{ - 250, - 500, - 625, - 1000, - 1250, - 2500 -}; +#if 0 + const uint16_t StepFrequencyTable[6] = + { + 250, + 500, + 625, + 1000, + 1250, + 2500 + }; +#else + const uint16_t StepFrequencyTable[6] = + { + 125, + 250, + 625, + 1000, + 1250, + 2500 + }; +#endif FREQUENCY_Band_t FREQUENCY_GetBand(uint32_t Frequency) { @@ -135,47 +147,47 @@ int FREQUENCY_Check(VFO_Info_t *pInfo) switch (gSetting_F_LOCK) { case F_LOCK_FCC: - if (Frequency >= 14400000 && Frequency <= 14799990) + if (Frequency >= 14400000 && Frequency < 14800000) return 0; - if (Frequency >= 42000000 && Frequency <= 44999990) + if (Frequency >= 42000000 && Frequency < 45000000) return 0; break; case F_LOCK_CE: - if (Frequency >= 14400000 && Frequency <= 14599990) + if (Frequency >= 14400000 && Frequency < 14600000) return 0; break; case F_LOCK_GB: - if (Frequency >= 14400000 && Frequency <= 14799990) + if (Frequency >= 14400000 && Frequency < 14800000) return 0; - if (Frequency >= 43000000 && Frequency <= 43999990) + if (Frequency >= 43000000 && Frequency < 44000000) return 0; break; case F_LOCK_430: - if (Frequency >= 13600000 && Frequency <= 17399990) + if (Frequency >= 13600000 && Frequency < 17400000) return 0; - if (Frequency >= 40000000 && Frequency <= 42999990) + if (Frequency >= 40000000 && Frequency < 43000000) return 0; break; case F_LOCK_438: - if (Frequency >= 13600000 && Frequency <= 17399990) + if (Frequency >= 13600000 && Frequency < 17400000) return 0; - if (Frequency >= 40000000 && Frequency <= 43799990) + if (Frequency >= 40000000 && Frequency < 43800000) return 0; break; default: - if (Frequency >= 13600000 && Frequency <= 17399990) + if (Frequency >= 13600000 && Frequency < 17400000) return 0; - if (Frequency >= 35000000 && Frequency <= 39999990) + if (Frequency >= 35000000 && Frequency < 40000000) if (gSetting_350TX && gSetting_350EN) return 0; - if (Frequency >= 40000000 && Frequency <= 46999990) + if (Frequency >= 40000000 && Frequency < 47000000) return 0; - if (Frequency >= 17400000 && Frequency <= 34999990) + if (Frequency >= 17400000 && Frequency < 35000000) if (gSetting_200TX) return 0; if (Frequency >= 47000000 && Frequency <= 60000000) diff --git a/radio.c b/radio.c index fb64565..38f8a70 100644 --- a/radio.c +++ b/radio.c @@ -812,6 +812,13 @@ void RADIO_PrepareTX(void) { VfoState_t State; + #ifndef ENABLE_TX_WHEN_AM + // disable the TX when VFO/Channel is set to AM + // the radio does NOT do AM, the adverts are false + if (gCurrentVfo->IsAM) + State = VFO_STATE_TX_DISABLE; + else + #endif if (!FREQUENCY_Check(gCurrentVfo)) { if (gCurrentVfo->BUSY_CHANNEL_LOCK && gCurrentFunction == FUNCTION_RECEIVE) @@ -827,7 +834,7 @@ void RADIO_PrepareTX(void) } else State = VFO_STATE_TX_DISABLE; - + RADIO_SetVfoState(State); #ifndef DISABLE_ALARM diff --git a/scheduler.c b/scheduler.c index 089e65b..71eee11 100644 --- a/scheduler.c +++ b/scheduler.c @@ -98,22 +98,4 @@ void SystickHandler(void) if (gVoxStopCountdown) gVoxStopCountdown--; - - #if 0 - if (gCurrentFunction == FUNCTION_TRANSMIT || gBacklightCountdown > 0) - { - GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight ON - } - else - if (gEeprom.BACKLIGHT >= 5) - { // backlight ON - half brightness - // was hoping to use this but don't like the odd flicker - if (gGlobalSysTickCounter & 1) - GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight ON - else - GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF - } - else - GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF - #endif } diff --git a/ui/main.c b/ui/main.c index 32a3f71..99042b0 100644 --- a/ui/main.c +++ b/ui/main.c @@ -267,7 +267,7 @@ void UI_DisplayMain(void) switch (gEeprom.CHANNEL_DISPLAY_MODE) { case MDF_FREQUENCY: // show the channel frequency - #ifdef BIG_FREQ_FONT + #ifndef DISABLE_BIG_FREQ NUMBER_ToDigits(frequency_Hz, String); // show the main large frequency digits UI_DisplayFrequency(String, 31, vfo_num * 4, false, false); @@ -329,7 +329,7 @@ void UI_DisplayMain(void) frequency_Hz = gEeprom.VfoInfo[vfo_num].pTX->Frequency; } - #ifdef BIG_FREQ_FONT + #ifndef DISABLE_BIG_FREQ NUMBER_ToDigits(frequency_Hz, String); // 8 digits // show the main large frequency digits UI_DisplayFrequency(String, 31, vfo_num * 4, false, false);