From b0794ec58244f63df40a0d607800432300acc2e2 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Wed, 27 Sep 2023 00:26:58 +0100 Subject: [PATCH] Optimize/reduce flash used in AM fix code --- Makefile | 4 + README.md | 1 + am_fix.c | 196 +++++++++++++------------------------------- app/app.c | 34 +++----- app/main.c | 140 +++++++++++++++++++------------ firmware.bin | Bin 53772 -> 53748 bytes firmware.packed.bin | Bin 53790 -> 53766 bytes functions.c | 2 + ui/main.c | 64 ++++++++++----- 9 files changed, 208 insertions(+), 233 deletions(-) diff --git a/Makefile b/Makefile index f8045dd..4679904 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH1_LOWER := 0 ENABLE_AUDIO_BAR := 0 +ENABLE_COPY_CHAN_TO_VFO := 1 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 @@ -226,6 +227,9 @@ endif ifeq ($(ENABLE_AUDIO_BAR),1) CFLAGS += -DENABLE_AUDIO_BAR endif +ifeq ($(ENABLE_COPY_CHAN_TO_VFO),1) + CFLAGS += -DENABLE_COPY_CHAN_TO_VFO +endif ifeq ($(ENABLE_SINGLE_VFO_CHAN),1) CFLAGS += -DENABLE_SINGLE_VFO_CHAN endif diff --git a/README.md b/README.md index 0c4e615..f183076 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ ENABLE_AM_FIX := 1 dynamically adjust the front end gains ENABLE_AM_FIX_SHOW_DATA := 1 show debug data for the AM fix ENABLE_SQUELCH1_LOWER := 0 adjusts squelch setting '1' to be more sensitive - I plan to let user adjust it in the menu ENABLE_AUDIO_BAR := 0 experimental, display an audo bar level when TX'ing +#ENABLE_COPY_CHAN_TO_VFO := 1 not yet implemented - copy the channel into the VFO #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible #ENABLE_BAND_SCOPE := 1 not yet implemented - spectrum/pan-adapter ``` diff --git a/am_fix.c b/am_fix.c index 3fb7e65..38c1a0c 100644 --- a/am_fix.c +++ b/am_fix.c @@ -53,8 +53,8 @@ const uint8_t orig_pga = 6; // -3dB uint8_t mixer; // 0 ~ 3 uint8_t pga; // 0 ~ 7 #endif - } t_am_fix_gain_table; - //} __attribute__((packed)) t_am_fix_gain_table; + } t_gain_table; + //} __attribute__((packed)) t_gain_table; // REG_10 AGC gain table // @@ -109,7 +109,7 @@ const uint8_t orig_pga = 6; // -3dB // lookup table is hugely easier than writing code to do the same // - static const t_am_fix_gain_table am_fix_gain_table[] = + static const t_gain_table gain_table[] = { {.lna_short = 3, .lna = 2, .mixer = 3, .pga = 6}, // 0 0dB -14dB 0dB -3dB .. -17dB original @@ -126,74 +126,8 @@ const uint8_t orig_pga = 6; // -3dB const unsigned int original_index = 1; -#elif 0 - - // in this table the 'lna-short' register I leave unchanged - - {3, 0, 0, 0}, // 1 .. 0dB -24dB -8dB -33dB .. -65dB - {3, 0, 1, 0}, // 2 .. 0dB -24dB -6dB -33dB .. -63dB - {3, 0, 2, 0}, // 3 .. 0dB -24dB -3dB -33dB .. -60dB - {3, 0, 0, 1}, // 4 .. 0dB -24dB -8dB -27dB .. -59dB - {3, 1, 1, 0}, // 5 .. 0dB -19dB -6dB -33dB .. -58dB - {3, 0, 1, 1}, // 6 .. 0dB -24dB -6dB -27dB .. -57dB - {3, 1, 2, 0}, // 7 .. 0dB -19dB -3dB -33dB .. -55dB - {3, 1, 0, 1}, // 8 .. 0dB -19dB -8dB -27dB .. -54dB - {3, 0, 0, 2}, // 9 .. 0dB -24dB -8dB -21dB .. -53dB - {3, 1, 1, 1}, // 10 .. 0dB -19dB -6dB -27dB .. -52dB - {3, 0, 1, 2}, // 11 .. 0dB -24dB -6dB -21dB .. -51dB - {3, 2, 2, 0}, // 12 .. 0dB -14dB -3dB -33dB .. -50dB - {3, 2, 0, 1}, // 13 .. 0dB -14dB -8dB -27dB .. -49dB - {3, 0, 2, 2}, // 14 .. 0dB -24dB -3dB -21dB .. -48dB - {3, 2, 3, 0}, // 15 .. 0dB -14dB 0dB -33dB .. -47dB - {3, 1, 3, 1}, // 16 .. 0dB -19dB 0dB -27dB .. -46dB - {3, 0, 3, 2}, // 17 .. 0dB -24dB 0dB -21dB .. -45dB - {3, 3, 0, 1}, // 18 .. 0dB -9dB -8dB -27dB .. -44dB - {3, 1, 2, 2}, // 19 .. 0dB -19dB -3dB -21dB .. -43dB - {3, 0, 2, 3}, // 20 .. 0dB -24dB -3dB -15dB .. -42dB - {3, 0, 0, 4}, // 21 .. 0dB -24dB -8dB -9dB .. -41dB - {3, 1, 1, 3}, // 22 .. 0dB -19dB -6dB -15dB .. -40dB - {3, 0, 1, 4}, // 23 .. 0dB -24dB -6dB -9dB .. -39dB - {3, 0, 0, 5}, // 24 .. 0dB -24dB -8dB -6dB .. -38dB - {3, 1, 2, 3}, // 25 .. 0dB -19dB -3dB -15dB .. -37dB - {3, 0, 2, 4}, // 26 .. 0dB -24dB -3dB -9dB .. -36dB - {3, 4, 0, 2}, // 27 .. 0dB -6dB -8dB -21dB .. -35dB - {3, 1, 1, 4}, // 28 .. 0dB -19dB -6dB -9dB .. -34dB - {3, 1, 0, 5}, // 29 .. 0dB -19dB -8dB -6dB .. -33dB - {3, 3, 0, 3}, // 30 .. 0dB -9dB -8dB -15dB .. -32dB - {3, 5, 1, 2}, // 31 .. 0dB -4dB -6dB -21dB .. -31dB - {3, 1, 0, 6}, // 32 .. 0dB -19dB -8dB -3dB .. -30dB - {3, 2, 3, 3}, // 33 .. 0dB -14dB 0dB -15dB .. -29dB - {3, 1, 1, 6}, // 34 .. 0dB -19dB -6dB -3dB .. -28dB - {3, 4, 1, 3}, // 35 .. 0dB -6dB -6dB -15dB .. -27dB - {3, 2, 2, 4}, // 36 .. 0dB -14dB -3dB -9dB .. -26dB - {3, 1, 2, 6}, // 37 .. 0dB -19dB -3dB -3dB .. -25dB - {3, 3, 1, 4}, // 38 .. 0dB -9dB -6dB -9dB .. -24dB - {3, 2, 1, 6}, // 39 .. 0dB -14dB -6dB -3dB .. -23dB - {3, 5, 2, 3}, // 40 .. 0dB -4dB -3dB -15dB .. -22dB - {3, 4, 1, 4}, // 41 .. 0dB -6dB -6dB -9dB .. -21dB - {3, 4, 0, 5}, // 42 .. 0dB -6dB -8dB -6dB .. -20dB - {3, 5, 1, 4}, // 43 .. 0dB -4dB -6dB -9dB .. -19dB - {3, 3, 3, 4}, // 44 .. 0dB -9dB 0dB -9dB .. -18dB - {3, 2, 3, 6}, // 45 .. 0dB -14dB 0dB -3dB .. -17dB original - {3, 5, 1, 5}, // 46 .. 0dB -4dB -6dB -6dB .. -16dB - {3, 3, 1, 7}, // 47 .. 0dB -9dB -6dB 0dB .. -15dB - {3, 2, 3, 7}, // 48 .. 0dB -14dB 0dB 0dB .. -14dB - {3, 5, 1, 6}, // 49 .. 0dB -4dB -6dB -3dB .. -13dB - {3, 4, 2, 6}, // 50 .. 0dB -6dB -3dB -3dB .. -12dB - {3, 5, 2, 6}, // 51 .. 0dB -4dB -3dB -3dB .. -10dB - {3, 4, 3, 6}, // 52 .. 0dB -6dB 0dB -3dB .. -9dB - {3, 5, 2, 7}, // 53 .. 0dB -4dB -3dB 0dB .. -7dB - {3, 4, 3, 7}, // 54 .. 0dB -6dB 0dB 0dB .. -6dB - {3, 5, 3, 7} // 55 .. 0dB -4dB 0dB 0dB .. -4dB - }; - - const unsigned int original_index = 45; - #else - // in this table I include adjusting the 'lna-short' register ~ - // more gain adjustment range from doing so - {0, 0, 0, 0}, // 1 .. -33dB -24dB -8dB -33dB .. -98dB {0, 0, 1, 0}, // 2 .. -33dB -24dB -6dB -33dB .. -96dB {1, 0, 0, 0}, // 3 .. -30dB -24dB -8dB -33dB .. -95dB @@ -296,18 +230,21 @@ const uint8_t orig_pga = 6; // -3dB #endif + // the total gain for each table index + int8_t gain_dB[ARRAY_SIZE(gain_table)] = {0}; + unsigned int counter = 0; int16_t orig_dB_gain = -17; #ifdef ENABLE_AM_FIX_TEST1 - unsigned int am_fix_gain_table_index[2] = {1 + gSetting_AM_fix_test1, 1 + gSetting_AM_fix_test1}; + unsigned int gain_table_index[2] = {1 + gSetting_AM_fix_test1, 1 + gSetting_AM_fix_test1}; #else - unsigned int am_fix_gain_table_index[2] = {original_index, original_index}; + unsigned int gain_table_index[2] = {original_index, original_index}; #endif // used to simply detect we've changed our table index/register settings - unsigned int am_fix_gain_table_index_prev[2] = {0, 0}; + unsigned int gain_table_index_prev[2] = {0, 0}; // holds the previous RSSI level int16_t prev_rssi[2] = {0, 0}; @@ -319,7 +256,7 @@ const uint8_t orig_pga = 6; // -3dB int16_t rssi_db_gain_diff[2] = {0, 0}; // used to limit the max front end gain - unsigned int max_index = ARRAY_SIZE(am_fix_gain_table) - 1; + unsigned int max_index = ARRAY_SIZE(gain_table) - 1; #ifndef ENABLE_AM_FIX_TEST1 // -89dBm, any higher and the AM demodulator starts to saturate/clip/distort @@ -330,35 +267,36 @@ const uint8_t orig_pga = 6; // -3dB { // called at boot-up unsigned int i; + for (i = 0; i < 2; i++) { #ifdef ENABLE_AM_FIX_TEST1 - am_fix_gain_table_index[i] = 1 + gSetting_AM_fix_test1; + gain_table_index[i] = 1 + gSetting_AM_fix_test1; #else - am_fix_gain_table_index[i] = original_index; // re-start with original QS setting + gain_table_index[i] = original_index; // re-start with original QS setting #endif } + // pre-compute the total gain DB for each table index + for (i = 0; i < ARRAY_SIZE(gain_table); i++) + { + const t_gain_table gains = gain_table[i]; + gain_dB[i] = lna_short_dB[gains.lna_short] + lna_dB[gains.lna] + mixer_dB[gains.mixer] + pga_dB[gains.pga]; + } + orig_dB_gain = lna_short_dB[orig_lna_short] + lna_dB[orig_lna] + mixer_dB[orig_mixer] + pga_dB[orig_pga]; #if 0 - { // set the maximum gain we want to use + { // set a maximum gain to use // const int16_t max_gain_dB = orig_dB_gain; const int16_t max_gain_dB = -10; - max_index = ARRAY_SIZE(am_fix_gain_table); + max_index = ARRAY_SIZE(gain_table); while (--max_index > 1) - { - const uint8_t lna_short = am_fix_gain_table[max_index].lna_short; - const uint8_t lna = am_fix_gain_table[max_index].lna; - const uint8_t mixer = am_fix_gain_table[max_index].mixer; - const uint8_t pga = am_fix_gain_table[max_index].pga; - const int16_t gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; - if (gain_dB <= max_gain_dB) + if (gain_dB[max_index] <= max_gain_dB) break; - } } #else - max_index = ARRAY_SIZE(am_fix_gain_table) - 1; + max_index = ARRAY_SIZE(gain_table) - 1; #endif } @@ -374,12 +312,12 @@ const uint8_t orig_pga = 6; // -3dB rssi_db_gain_diff[vfo] = 0; #ifdef ENABLE_AM_FIX_TEST1 -// am_fix_gain_table_index[vfo] = 1 + gSetting_AM_fix_test1; +// gain_table_index[vfo] = 1 + gSetting_AM_fix_test1; #else -// am_fix_gain_table_index[vfo] = original_index; // re-start with original QS setting +// gain_table_index[vfo] = original_index; // re-start with original QS setting #endif - am_fix_gain_table_index_prev[vfo] = 0; + gain_table_index_prev[vfo] = 0; } // adjust the RX RF gain to try and prevent the AM demodulator from @@ -415,8 +353,13 @@ const uint8_t orig_pga = 6; // -3dB } if (counter > 0) + { if (++counter >= 20) // limit display update rate to 200ms - counter = 0; + { + counter = 0; + gUpdateDisplay = true; + } + } { // sample the current RSSI level // average it with the previous rssi (a bit of noise/spike immunity) @@ -444,9 +387,9 @@ const uint8_t orig_pga = 6; // -3dB { int i = 1 + (int)gSetting_AM_fix_test1; - i = (i < 1) ? 1 : (i > ((int)ARRAY_SIZE(am_fix_gain_table) - 1) ? ARRAY_SIZE(am_fix_gain_table) - 1 : i; + i = (i < 1) ? 1 : (i > ((int)ARRAY_SIZE(gain_table) - 1) ? ARRAY_SIZE(gain_table) - 1 : i; - if (am_fix_gain_table_index[vfo] == i) + if (gain_table_index[vfo] == i) return; // no change } @@ -462,38 +405,18 @@ const uint8_t orig_pga = 6; // -3dB if (diff_dB > 0) { // decrease gain - unsigned int index = am_fix_gain_table_index[vfo]; // current position we're at + unsigned int index = gain_table_index[vfo]; // current position we're at if (diff_dB >= 10) { // jump immediately to a new gain setting // this greatly speeds up initial gain reduction (but reduces noise/spike immunity) - - uint8_t lna_short = am_fix_gain_table[index].lna_short; - uint8_t lna = am_fix_gain_table[index].lna; - uint8_t mixer = am_fix_gain_table[index].mixer; - uint8_t pga = am_fix_gain_table[index].pga; - -// const int16_t desired_gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga] - diff_dB; - const int16_t desired_gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga] - diff_dB + 8; // get no closer than 8dB (bit of noise/spike immunity) - + const int16_t desired_gain_dB = (int16_t)gain_dB[index] - diff_dB + 8; // get no closer than 8dB (bit of noise/spike immunity) // scan the table to see what index to jump straight too while (index > 1) - { - index--; - - lna_short = am_fix_gain_table[index].lna_short; - lna = am_fix_gain_table[index].lna; - mixer = am_fix_gain_table[index].mixer; - pga = am_fix_gain_table[index].pga; - - { - const int16_t gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; - if (gain_dB <= desired_gain_dB) - break; - } - } - - //index = (am_fix_gain_table_index[vfo] + index) / 2; // easy does it + if (gain_dB[--index] <= desired_gain_dB) + break; + + //index = (gain_table_index[vfo] + index) / 2; // easy does it } else { // incrementally reduce the gain .. taking it slow improves noise/spike immunity @@ -507,10 +430,10 @@ const uint8_t orig_pga = 6; // -3dB index = (index < 1) ? 1 : (index > max_index) ? max_index : index; - if (am_fix_gain_table_index[vfo] != index) + if (gain_table_index[vfo] != index) { - am_fix_gain_table_index[vfo] = index; - am_gain_hold_counter[vfo] = 30; // 300ms hold + gain_table_index[vfo] = index; + am_gain_hold_counter[vfo] = 30; // 300ms hold } } @@ -519,34 +442,30 @@ const uint8_t orig_pga = 6; // -3dB if (am_gain_hold_counter[vfo] == 0) { // hold has been released, we're free to increase gain - const unsigned int index = am_fix_gain_table_index[vfo] + 1; - am_fix_gain_table_index[vfo] = (index > max_index) ? max_index : index; // limit the gain + const unsigned int index = gain_table_index[vfo] + 1; + gain_table_index[vfo] = (index > max_index) ? max_index : index; // limit the gain } - if (am_fix_gain_table_index[vfo] == am_fix_gain_table_index_prev[vfo]) + if (gain_table_index[vfo] == gain_table_index_prev[vfo]) return; // no gain changes have been made #endif { // apply the new settings to the front end registers - const unsigned int index = am_fix_gain_table_index[vfo]; + const unsigned int index = gain_table_index[vfo]; - const uint8_t lna_short = am_fix_gain_table[index].lna_short; - const uint8_t lna = am_fix_gain_table[index].lna; - const uint8_t mixer = am_fix_gain_table[index].mixer; - const uint8_t pga = am_fix_gain_table[index].pga; - const int16_t gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; + const t_gain_table gains = gain_table[index]; - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + BK4819_WriteRegister(BK4819_REG_13, ((uint16_t)gains.lna_short << 8) | ((uint16_t)gains.lna << 5) | ((uint16_t)gains.mixer << 3) | ((uint16_t)gains.pga << 0)); // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we make // gain difference from original QS setting - rssi_db_gain_diff[vfo] = gain_dB - orig_dB_gain; + rssi_db_gain_diff[vfo] = (int16_t)gain_dB[index] - orig_dB_gain; // remember the new table index - am_fix_gain_table_index_prev[vfo] = index; + gain_table_index_prev[vfo] = index; { // save the corrected RSSI level const int16_t new_rssi = rssi - (rssi_db_gain_diff[vfo] * 2); @@ -576,14 +495,11 @@ const uint8_t orig_pga = 6; // -3dB void AM_fix_print_data(const int vfo, char *s) { // fetch current register settings - const unsigned int index = am_fix_gain_table_index[vfo]; - const uint8_t lna_short = am_fix_gain_table[index].lna_short; - const uint8_t lna = am_fix_gain_table[index].lna; - const uint8_t mixer = am_fix_gain_table[index].mixer; - const uint8_t pga = am_fix_gain_table[index].pga; - const int16_t gain_dB = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; if (s != NULL) - sprintf(s, "idx %2d %4ddB %3u", index, gain_dB, prev_rssi[vfo]); + { + const unsigned int index = gain_table_index[vfo]; + sprintf(s, "idx %2d %4ddB %3u", index, gain_dB[index], prev_rssi[vfo]); + } counter = 1; } diff --git a/app/app.c b/app/app.c index 36dd9a5..bdb90bf 100644 --- a/app/app.c +++ b/app/app.c @@ -1294,7 +1294,8 @@ void APP_CheckKeys(void) Key == KEY_SIDE1 || Key == KEY_UP || Key == KEY_DOWN || - Key == KEY_EXIT + Key == KEY_EXIT || + Key == KEY_MENU #ifdef ENABLE_MAIN_KEY_HOLD || Key <= KEY_9 // keys 0-9 can be held down to bypass pressing the F-Key #endif @@ -2048,33 +2049,20 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } } - if (gScanState != SCAN_OFF && - Key != KEY_PTT && + if (Key != KEY_PTT && Key != KEY_UP && Key != KEY_DOWN && Key != KEY_EXIT && Key != KEY_SIDE1 && Key != KEY_SIDE2 && Key != KEY_STAR) - { // scanning - if (bKeyPressed && !bKeyHeld) - AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); - return; - } - - if (gCssScanMode != CSS_SCAN_MODE_OFF && - Key != KEY_PTT && - Key != KEY_UP && - Key != KEY_DOWN && - Key != KEY_EXIT && - Key != KEY_SIDE1 && - Key != KEY_SIDE2 && - Key != KEY_STAR && - Key != KEY_MENU) - { // code scanning - if (bKeyPressed && !bKeyHeld) - AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); - return; + { + if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF) + { // frequency or CTCSS/DCS scanning + if (bKeyPressed && !bKeyHeld) + AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); + return; + } } if (gPttWasPressed && Key == KEY_PTT) @@ -2099,7 +2087,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } } - if (gWasFKeyPressed && Key > KEY_9 && Key != KEY_F && Key != KEY_STAR) + if (gWasFKeyPressed && Key > KEY_9 && Key != KEY_F && Key != KEY_STAR && Key != KEY_MENU) { gWasFKeyPressed = false; gUpdateStatus = true; diff --git a/app/main.c b/app/main.c index c191757..bd4a400 100644 --- a/app/main.c +++ b/app/main.c @@ -51,45 +51,14 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) #ifdef ENABLE_FMRADIO ACTION_FM(); #else - - - // TODO: do something useful with the key - - - #ifdef ENABLE_COPY_CHAN_VFO - { // copy channel to VFO - int channel = -1; - int vfo = -1; - if (IS_FREQ_CHANNEL(gTxVfo->CHANNEL_SAVE)) - { // VFO mode - if (IS_MR_CHANNEL(gRxVfo->CHANNEL_SAVE)) - { // other vfo is in channel mode - channel = gRxVfo->CHANNEL_SAVE; - vfo = gTxVfo->CHANNEL_SAVE; - } - } - else - if (IS_FREQ_CHANNEL((gRxVfo->CHANNEL_SAVE + 1) & 1)) - { // VFO mode - if (IS_MR_CHANNEL(gTxVfo->CHANNEL_SAVE)) - { // other vfo is in channel mode - channel = gTxVfo->CHANNEL_SAVE; - vfo = gRxVfo->CHANNEL_SAVE; - } - } - - if (channel >= 0 && vfo >= 0) - { // copy the channel into the VFO - - gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; - -// gRequestSaveVFO = true; -// gVfoConfigureMode = VFO_CONFIGURE_RELOAD; -// gRequestDisplayScreen = DISPLAY_MAIN; - } - } - #endif + + + + + // TODO: do something useful with the key + + @@ -124,7 +93,7 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) if (beep) gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; - + break; case KEY_2: @@ -148,7 +117,7 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) if (beep) gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; - + break; case KEY_3: @@ -188,7 +157,7 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) if (beep) gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; - + break; case KEY_4: @@ -201,7 +170,7 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) if (beep) gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; - + break; case KEY_5: @@ -282,8 +251,7 @@ static void MAIN_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) if (bKeyPressed) { if (gScreenToDisplay == DISPLAY_MAIN) - { // we're going to go straight to the 0-9 key function - // without the need of the F-key + { if (gInputBoxIndex > 0) { // delete any inputted chars gInputBoxIndex = 0; @@ -300,7 +268,7 @@ static void MAIN_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) return; } - + #ifdef ENABLE_MAIN_KEY_HOLD if (bKeyPressed) { // key is pressed @@ -310,16 +278,17 @@ static void MAIN_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) #else if (!bKeyPressed) return; - + gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; #endif - + if (!gWasFKeyPressed) { // F-key wasn't pressed - uint8_t Vfo = gEeprom.TX_CHANNEL; + const uint8_t Vfo = gEeprom.TX_CHANNEL; gKeyInputCountdown = key_input_timeout_500ms; + INPUTBOX_Append(Key); gRequestDisplayScreen = DISPLAY_MAIN; @@ -490,7 +459,7 @@ static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld) #ifdef ENABLE_FMRADIO ACTION_FM(); #endif - + return; } @@ -508,9 +477,78 @@ static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld) } } -static void MAIN_Key_MENU(bool bKeyPressed, bool bKeyHeld) +static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) { - if (!bKeyHeld && bKeyPressed) + if (bKeyHeld) + { // key held down (long press) + + if (bKeyPressed) + { + if (gScreenToDisplay == DISPLAY_MAIN) + { + if (gInputBoxIndex > 0) + { // delete any inputted chars + gInputBoxIndex = 0; + gRequestDisplayScreen = DISPLAY_MAIN; + } + + gWasFKeyPressed = false; + gUpdateStatus = true; + + + + // TODO: long press M-key + + + + #ifdef ENABLE_COPY_CHAN_TO_VFO + { // copy channel to VFO + int channel = -1; + int vfo = -1; + //int selected = -1; + + if (IS_FREQ_CHANNEL(gRxVfo->CHANNEL_SAVE)) + { // VFO mode + if (IS_MR_CHANNEL(gTxVfo->CHANNEL_SAVE)) + { // other VFO is in channel mode + channel = gTxVfo->CHANNEL_SAVE; + vfo = gRxVfo->CHANNEL_SAVE; + } + } + else + if (IS_FREQ_CHANNEL(gTxVfo->CHANNEL_SAVE)) + { // VFO mode + if (IS_MR_CHANNEL(gRxVfo->CHANNEL_SAVE)) + { // other VFO is in channel mode + channel = gRxVfo->CHANNEL_SAVE; + vfo = gTxVfo->CHANNEL_SAVE; + } + } + + if (channel >= 0 && vfo >= 0) + { // copy the channel into the VFO + + gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + + + + //gEeprom.RX_CHANNEL = () & 1; // swap to the VFO + + +// gRequestSaveVFO = true; +// gVfoConfigureMode = VFO_CONFIGURE_RELOAD; +// gRequestDisplayScreen = DISPLAY_MAIN; + } + } + #endif + + } + } + + return; + } + + if (!bKeyPressed) { bool bFlag; diff --git a/firmware.bin b/firmware.bin index 76dc641749901ab278fddf49e09ec1450d25d9df..d8f8ebd54c3b9ab38e882d1b6d188e58f27b7135 100644 GIT binary patch delta 15350 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 delta 15515 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 z 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%0DfD#ir$-*2BDsi_)Gg`MB!15cr6>|KB-- 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 F8US>qP-XxC diff --git a/functions.c b/functions.c index 4bf29fa..4aef501 100644 --- a/functions.c +++ b/functions.c @@ -151,6 +151,8 @@ void FUNCTION_Select(FUNCTION_Type_t Function) // if DTMF is enabled when TX'ing, it changes the TX audio filtering !! .. 1of11 BK4819_DisableDTMF(); + gDTMF_ReceivedSaved[0] = 0; + #if defined(ENABLE_FMRADIO) if (gFmRadioMode) BK1080_Init(0, false); diff --git a/ui/main.c b/ui/main.c index c88a0e5..1882ea3 100644 --- a/ui/main.c +++ b/ui/main.c @@ -36,33 +36,57 @@ #include "ui/ui.h" #ifdef ENABLE_AUDIO_BAR + + unsigned int sqrt16(unsigned int value) + { // return square root of 'value' + unsigned int shift = 15; + unsigned int bit = 1u << shift; + unsigned int sqrti = 0; + do { + const unsigned int temp = ((sqrti << 1) | bit) << shift--; + if (value >= temp) + { + value -= temp; + sqrti |= bit; + } + } while (bit >>= 1); + return sqrti; + } + void UI_DisplayAudioBar(void) { if (gSetting_mic_bar) { const unsigned int line = 3; const unsigned int lcd_width = sizeof(gFrameBuffer[line]) - 2; - + #if 1 // TX audio level - + if (gCurrentFunction != FUNCTION_TRANSMIT) return; - - // TODO: logify this to make the bar visible with the mostly small value - - - const uint16_t voice_amp = BK4819_GetVoiceAmplitudeOut(); // 15:0 - const unsigned int max = 32767; - const unsigned int level = (((uint32_t)voice_amp * lcd_width) + (max / 2)) / max; // with rounding + + const unsigned int voice_amp = BK4819_GetVoiceAmplitudeOut(); // 15:0 + +// const unsigned int max = 65535; +// const unsigned int level = ((voice_amp * lcd_width) + (max / 2)) / max; // with rounding +// const unsigned int len = (level <= lcd_width) ? level : lcd_width; + + // make non-linear to make more sensitive at low values + const unsigned int level = voice_amp * 8; + const unsigned int sqrt_level = sqrt16((level < 65535) ? level : 65535); + const unsigned int len = (sqrt_level <= lcd_width) ? sqrt_level : lcd_width; + #else // TX/RX AF input level (dB) - const uint8_t af_tx_rx = BK4819_GetAfTxRx(); // 6:0 - const unsigned int max = 63; - const unsigned int level = (((uint16_t)af_tx_rx * lcd_width) + (max / 2)) / max; // with rounding + + const uint8_t af_tx_rx = BK4819_GetAfTxRx(); // 6:0 + const unsigned int max = 63; + const unsigned int level = (((uint16_t)af_tx_rx * lcd_width) + (max / 2)) / max; // with rounding + const unsigned int len = (level <= lcd_width) ? level : lcd_width; + #endif - - const unsigned int len = (level <= lcd_width) ? level : lcd_width; + uint8_t *pLine = gFrameBuffer[line]; memset(pLine, 0, lcd_width); #if 0 @@ -72,7 +96,8 @@ for (unsigned int i = 0; i < len; i += 2) pLine[i] = 0x3e; #endif - + + if (gCurrentFunction == FUNCTION_TRANSMIT) ST7565_BlitFullScreen(); } @@ -343,7 +368,7 @@ void UI_DisplayMain(void) #else UI_PrintStringSmall(String, 32 + 4, 0, Line); #endif - + // show the channel frequency below the channel number/name sprintf(String, "%03u.%05u", frequency / 100000, frequency % 100000); UI_PrintStringSmall(String, 32 + 4, 0, Line + 1); @@ -503,7 +528,7 @@ void UI_DisplayMain(void) case FUNCTION_BAND_SCOPE: case FUNCTION_POWER_SAVE: break; - + case FUNCTION_FOREGROUND: break; @@ -520,9 +545,10 @@ void UI_DisplayMain(void) { #ifdef ENABLE_AUDIO_BAR UI_DisplayAudioBar(); - - if (!gSetting_mic_bar) + +// if (!gSetting_mic_bar) #endif + if (gCurrentFunction != FUNCTION_TRANSMIT) { if (gSetting_live_DTMF_decoder && gDTMF_ReceivedSaved[0] >= 32) { // show live DTMF decode