From 576b8c552fd176bd7b0ea592d283e78401befe24 Mon Sep 17 00:00:00 2001 From: mrkusypl Date: Sat, 6 Jun 2026 17:56:33 +0200 Subject: [PATCH] Code refactoring (32 B) --- App/app/app.c | 15 +++------ App/radio.c | 86 ++++++++++++++++++++------------------------------- 2 files changed, 38 insertions(+), 63 deletions(-) diff --git a/App/app/app.c b/App/app/app.c index 67c62b7f..57ddb407 100644 --- a/App/app/app.c +++ b/App/app/app.c @@ -135,20 +135,13 @@ static uint8_t ScreenSaverRandom(void) static void ScreenSaverSetPixel(uint8_t x, uint8_t y, bool fill) { const uint8_t pattern = 1u << (y & 7u); + + uint8_t *target = (y < 8) ? &gStatusLine[x] : &gFrameBuffer[(y >> 3) - 1][x]; - if (y < 8) { - if (fill) - gStatusLine[x] |= pattern; - else - gStatusLine[x] &= (uint8_t)~pattern; - return; - } - - y -= 8; if (fill) - gFrameBuffer[y >> 3][x] |= pattern; + *target |= pattern; else - gFrameBuffer[y >> 3][x] &= (uint8_t)~pattern; + *target &= (uint8_t)~pattern; } static void ScreenSaverDrawMatrixGlyph(uint8_t x, int16_t y, uint8_t glyph) diff --git a/App/radio.c b/App/radio.c index 9d4b5e27..56316da2 100644 --- a/App/radio.c +++ b/App/radio.c @@ -510,17 +510,20 @@ void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo) } else { // squelch >= 1 - Base += gEeprom.SQUELCH_LEVEL; // my eeprom squelch-1 - // VHF UHF - PY25Q16_ReadBuffer(Base + 0x00, &pInfo->SquelchOpenRSSIThresh, 1); // 50 10 - PY25Q16_ReadBuffer(Base + 0x10, &pInfo->SquelchCloseRSSIThresh, 1); // 40 5 - - PY25Q16_ReadBuffer(Base + 0x20, &pInfo->SquelchOpenNoiseThresh, 1); // 65 90 - PY25Q16_ReadBuffer(Base + 0x30, &pInfo->SquelchCloseNoiseThresh, 1); // 70 100 - - PY25Q16_ReadBuffer(Base + 0x40, &pInfo->SquelchCloseGlitchThresh, 1); // 90 90 - PY25Q16_ReadBuffer(Base + 0x50, &pInfo->SquelchOpenGlitchThresh, 1); // 100 100 + Base += gEeprom.SQUELCH_LEVEL; // my eeprom squelch-1 + // VHF UHF + uint8_t *sq_ptrs[6] = { + &pInfo->SquelchOpenRSSIThresh, // 50 10 + &pInfo->SquelchCloseRSSIThresh, // 40 5 + &pInfo->SquelchOpenNoiseThresh, // 65 90 + &pInfo->SquelchCloseNoiseThresh, // 70 100 + &pInfo->SquelchCloseGlitchThresh, // 90 90 + &pInfo->SquelchOpenGlitchThresh // 100 100 + }; + for(uint8_t i = 0; i < 6; i++) { + PY25Q16_ReadBuffer(Base + (i * 0x10), sq_ptrs[i], 1); + } uint16_t noise_open = pInfo->SquelchOpenNoiseThresh; uint16_t noise_close = pInfo->SquelchCloseNoiseThresh; @@ -698,18 +701,11 @@ void RADIO_ApplyOffset(VFO_Info_t *pInfo) { uint32_t Frequency = pInfo->freq_config_RX.Frequency; - switch (pInfo->TX_OFFSET_FREQUENCY_DIRECTION) - { - case TX_OFFSET_FREQUENCY_DIRECTION_OFF: - break; - case TX_OFFSET_FREQUENCY_DIRECTION_ADD: - Frequency += pInfo->TX_OFFSET_FREQUENCY; - break; - case TX_OFFSET_FREQUENCY_DIRECTION_SUB: - Frequency -= pInfo->TX_OFFSET_FREQUENCY; - break; - } - + if (pInfo->TX_OFFSET_FREQUENCY_DIRECTION == TX_OFFSET_FREQUENCY_DIRECTION_ADD) + Frequency += pInfo->TX_OFFSET_FREQUENCY; + else if (pInfo->TX_OFFSET_FREQUENCY_DIRECTION == TX_OFFSET_FREQUENCY_DIRECTION_SUB) + Frequency -= pInfo->TX_OFFSET_FREQUENCY; + pInfo->freq_config_TX.Frequency = Frequency; } @@ -841,7 +837,7 @@ void RADIO_SetupRegisters(bool switchToForeground) BK4819_SetCTCSSFrequency(SQL_TONE); BK4819_SetTailDetection(SQL_TONE); // Default 550 = QS's 55Hz tone method - InterruptMask = BK4819_REG_3F_CxCSS_TAIL | BK4819_REG_3F_SQUELCH_FOUND | BK4819_REG_3F_SQUELCH_LOST; + InterruptMask |= BK4819_REG_3F_CxCSS_TAIL; break; case CODE_TYPE_CONTINUOUS_TONE: @@ -853,24 +849,17 @@ void RADIO_SetupRegisters(bool switchToForeground) // BK4819_SetTailDetection(CTCSS_Options[Code]); //#endif - InterruptMask = 0 - | BK4819_REG_3F_CxCSS_TAIL - | BK4819_REG_3F_CTCSS_FOUND - | BK4819_REG_3F_CTCSS_LOST - | BK4819_REG_3F_SQUELCH_FOUND - | BK4819_REG_3F_SQUELCH_LOST; - + InterruptMask |= BK4819_REG_3F_CxCSS_TAIL + | BK4819_REG_3F_CTCSS_FOUND + | BK4819_REG_3F_CTCSS_LOST; break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: BK4819_SetCDCSSCodeWord(DCS_GetGolayCodeWord(CodeType, Code)); - InterruptMask = 0 - | BK4819_REG_3F_CxCSS_TAIL - | BK4819_REG_3F_CDCSS_FOUND - | BK4819_REG_3F_CDCSS_LOST - | BK4819_REG_3F_SQUELCH_FOUND - | BK4819_REG_3F_SQUELCH_LOST; + InterruptMask |= BK4819_REG_3F_CxCSS_TAIL + | BK4819_REG_3F_CDCSS_FOUND + | BK4819_REG_3F_CDCSS_LOST; break; } @@ -888,11 +877,8 @@ void RADIO_SetupRegisters(bool switchToForeground) else { BK4819_SetCTCSSFrequency(2625); - InterruptMask = 0 - | BK4819_REG_3F_CTCSS_FOUND - | BK4819_REG_3F_CTCSS_LOST - | BK4819_REG_3F_SQUELCH_FOUND - | BK4819_REG_3F_SQUELCH_LOST; + InterruptMask |= BK4819_REG_3F_CTCSS_FOUND + | BK4819_REG_3F_CTCSS_LOST; } #endif @@ -1099,11 +1085,12 @@ void RADIO_SetModulation(ModulationMode_t modulation) // So for now we just keep it as is to maintain compatibility. // + uint16_t uVar1 = BK4819_ReadRegister(0x31); + switch (modulation) { case MODULATION_AM: { - uint16_t uVar1 = BK4819_ReadRegister(0x31); BK4819_WriteRegister(0x31, uVar1 | 1); // AM Demodulation Enable BK4819_WriteRegister(0x42, 0x6f5c); BK4819_WriteRegister(0x2a, 0x7434); @@ -1123,7 +1110,6 @@ void RADIO_SetModulation(ModulationMode_t modulation) case MODULATION_FM: default: { - uint16_t uVar1 = BK4819_ReadRegister(0x31); BK4819_WriteRegister(0x31, uVar1 & 0xfffe); // AM Demodulation Disable BK4819_WriteRegister(0x42, 0x6b5a); BK4819_WriteRegister(0x2a, 0x7400); @@ -1213,16 +1199,12 @@ void RADIO_PrepareTX(void) RADIO_SelectCurrentVfo(); + if(TX_freq_check(gCurrentVfo->pTX->Frequency) != 0 #ifdef ENABLE_FEAT_F4HWN - if(TX_freq_check(gCurrentVfo->pTX->Frequency) != 0 && gCurrentVfo->TX_LOCK == true - #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) - && gAlarmState != ALARM_STATE_SITE_ALARM - #endif -#else - if(TX_freq_check(gCurrentVfo->pTX->Frequency) != 0 - #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) - && gAlarmState != ALARM_STATE_SITE_ALARM - #endif + && gCurrentVfo->TX_LOCK == true +#endif +#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) + && gAlarmState != ALARM_STATE_SITE_ALARM #endif ){ // TX frequency not allowed