From 8acbfbc80dea08ecabc2a331098e6e3c06f2321e Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 26 Sep 2023 11:06:24 +0100 Subject: [PATCH] overcome a compiler issue (neg numbers in const tables) - strange problem --- am_fix.c | 296 ++++++++++++++++++++++++-------------------- firmware.bin | Bin 53412 -> 53452 bytes firmware.packed.bin | Bin 53430 -> 53470 bytes utils/main.cpp | 2 +- utils/misc.exe | Bin 18944 -> 18944 bytes 5 files changed, 163 insertions(+), 135 deletions(-) diff --git a/am_fix.c b/am_fix.c index 0bc7aeb..a284303 100644 --- a/am_fix.c +++ b/am_fix.c @@ -99,11 +99,13 @@ const uint8_t orig_pga = 6; // -3dB // // these 4 tables need a measuring/calibration update // -// static const int16_t lna_short_dB[] = {-19, -16, -11, 0}; // was - static const int16_t lna_short_dB[] = {-33, -30 -24, 0}; // corrected'ish - static const int16_t lna_dB[] = {-24, -19, -14, -9, -6, -4, -2, 0}; - static const int16_t mixer_dB[] = { -8, -6, -3, 0}; - static const int16_t pga_dB[] = {-33, -27, -21, -15, -9, -6, -3, 0}; + // QUESTION: why do I have to surround the negative numbers in brackets ??? .. if I don't then the table contains wrong numbers + // +// static const int16_t lna_short_dB[] = { -19, -16, -11, 0}; // was (but wrong) + static const int16_t lna_short_dB[] = { (-33), (-30), (-24), 0}; // corrected'ish + static const int16_t lna_dB[] = { (-24), (-19), (-14), ( -9), (-6), (-4), (-2), 0}; + static const int16_t mixer_dB[] = { ( -8), ( -6), ( -3), 0}; + static const int16_t pga_dB[] = { (-33), (-27), (-21), (-15), (-9), (-6), (-3), 0}; // lookup table is hugely easier than writing code to do the same // @@ -212,76 +214,82 @@ const uint8_t orig_pga = 6; // -3dB {1, 2, 0, 1}, // 18 .. -30dB -14dB -8dB -27dB .. -79dB {0, 3, 2, 0}, // 19 .. -33dB -9dB -3dB -33dB .. -78dB {1, 4, 0, 0}, // 20 .. -30dB -6dB -8dB -33dB .. -77dB - {0, 2, 0, 2}, // 21 .. -33dB -14dB -8dB -21dB .. -76dB - {0, 3, 3, 0}, // 22 .. -33dB -9dB 0dB -33dB .. -75dB + {1, 1, 3, 1}, // 21 .. -30dB -19dB 0dB -27dB .. -76dB + {0, 0, 2, 3}, // 22 .. -33dB -24dB -3dB -15dB .. -75dB {1, 3, 0, 1}, // 23 .. -30dB -9dB -8dB -27dB .. -74dB - {1, 2, 0, 2}, // 24 .. -30dB -14dB -8dB -21dB .. -73dB - {1, 1, 0, 3}, // 25 .. -30dB -19dB -8dB -15dB .. -72dB - {1, 4, 0, 1}, // 26 .. -30dB -6dB -8dB -27dB .. -71dB - {1, 5, 2, 0}, // 27 .. -30dB -4dB -3dB -33dB .. -70dB - {1, 4, 1, 1}, // 28 .. -30dB -6dB -6dB -27dB .. -69dB - {2, 2, 2, 1}, // 29 .. -24dB -14dB -3dB -27dB .. -68dB - {2, 1, 2, 2}, // 30 .. -24dB -19dB -3dB -21dB .. -67dB - {2, 0, 2, 3}, // 31 .. -24dB -24dB -3dB -15dB .. -66dB - {1, 0, 0, 6}, // 32 .. -30dB -24dB -8dB -3dB .. -65dB + {1, 6, 0, 0}, // 24 .. -30dB -2dB -8dB -33dB .. -73dB + {0, 7, 1, 0}, // 25 .. -33dB 0dB -6dB -33dB .. -72dB + {0, 6, 2, 0}, // 26 .. -33dB -2dB -3dB -33dB .. -71dB + {2, 1, 3, 1}, // 27 .. -24dB -19dB 0dB -27dB .. -70dB + {0, 3, 1, 2}, // 28 .. -33dB -9dB -6dB -21dB .. -69dB + {0, 0, 0, 6}, // 29 .. -33dB -24dB -8dB -3dB .. -68dB + {0, 5, 2, 1}, // 30 .. -33dB -4dB -3dB -27dB .. -67dB + {0, 0, 1, 6}, // 31 .. -33dB -24dB -6dB -3dB .. -66dB + {1, 2, 3, 2}, // 32 .. -30dB -14dB 0dB -21dB .. -65dB {2, 1, 1, 3}, // 33 .. -24dB -19dB -6dB -15dB .. -64dB - {0, 3, 1, 3}, // 34 .. -33dB -9dB -6dB -15dB .. -63dB - {2, 3, 0, 2}, // 35 .. -24dB -9dB -8dB -21dB .. -62dB - {2, 1, 2, 3}, // 36 .. -24dB -19dB -3dB -15dB .. -61dB - {2, 3, 1, 2}, // 37 .. -24dB -9dB -6dB -21dB .. -60dB - {2, 2, 3, 2}, // 38 .. -24dB -14dB 0dB -21dB .. -59dB - {2, 1, 1, 4}, // 39 .. -24dB -19dB -6dB -9dB .. -58dB - {2, 4, 1, 2}, // 40 .. -24dB -6dB -6dB -21dB .. -57dB - {1, 2, 2, 4}, // 41 .. -30dB -14dB -3dB -9dB .. -56dB - {2, 1, 1, 5}, // 42 .. -24dB -19dB -6dB -6dB .. -55dB - {2, 3, 3, 2}, // 43 .. -24dB -9dB 0dB -21dB .. -54dB - {1, 3, 0, 5}, // 44 .. -30dB -9dB -8dB -6dB .. -53dB - {1, 5, 2, 3}, // 45 .. -30dB -4dB -3dB -15dB .. -52dB - {1, 3, 1, 5}, // 46 .. -30dB -9dB -6dB -6dB .. -51dB - {0, 2, 2, 7}, // 47 .. -33dB -14dB -3dB 0dB .. -50dB - {2, 1, 1, 7}, // 48 .. -24dB -19dB -6dB 0dB .. -49dB - {0, 4, 2, 5}, // 49 .. -33dB -6dB -3dB -6dB .. -48dB - {1, 2, 3, 6}, // 50 .. -30dB -14dB 0dB -3dB .. -47dB - {1, 5, 1, 5}, // 51 .. -30dB -4dB -6dB -6dB .. -46dB - {3, 0, 3, 2}, // 52 .. 0dB -24dB 0dB -21dB .. -45dB - {3, 2, 2, 1}, // 53 .. 0dB -14dB -3dB -27dB .. -44dB - {2, 5, 1, 4}, // 54 .. -24dB -4dB -6dB -9dB .. -43dB - {1, 4, 2, 6}, // 55 .. -30dB -6dB -3dB -3dB .. -42dB - {3, 0, 0, 4}, // 56 .. 0dB -24dB -8dB -9dB .. -41dB - {0, 5, 3, 6}, // 57 .. -33dB -4dB 0dB -3dB .. -40dB - {2, 4, 2, 5}, // 58 .. -24dB -6dB -3dB -6dB .. -39dB - {3, 0, 0, 5}, // 59 .. 0dB -24dB -8dB -6dB .. -38dB - {0, 5, 3, 7}, // 60 .. -33dB -4dB 0dB 0dB .. -37dB - {2, 3, 3, 6}, // 61 .. -24dB -9dB 0dB -3dB .. -36dB - {3, 4, 0, 2}, // 62 .. 0dB -6dB -8dB -21dB .. -35dB - {3, 1, 1, 4}, // 63 .. 0dB -19dB -6dB -9dB .. -34dB - {3, 0, 3, 4}, // 64 .. 0dB -24dB 0dB -9dB .. -33dB - {3, 3, 0, 3}, // 65 .. 0dB -9dB -8dB -15dB .. -32dB - {3, 1, 1, 5}, // 66 .. 0dB -19dB -6dB -6dB .. -31dB - {3, 0, 2, 6}, // 67 .. 0dB -24dB -3dB -3dB .. -30dB - {3, 2, 3, 3}, // 68 .. 0dB -14dB 0dB -15dB .. -29dB + {1, 7, 3, 0}, // 34 .. -30dB 0dB 0dB -33dB .. -63dB + {1, 3, 0, 3}, // 35 .. -30dB -9dB -8dB -15dB .. -62dB + {0, 1, 2, 5}, // 36 .. -33dB -19dB -3dB -6dB .. -61dB + {2, 0, 2, 4}, // 37 .. -24dB -24dB -3dB -9dB .. -60dB + {1, 6, 3, 1}, // 38 .. -30dB -2dB 0dB -27dB .. -59dB + {1, 2, 0, 5}, // 39 .. -30dB -14dB -8dB -6dB .. -58dB + {2, 5, 0, 2}, // 40 .. -24dB -4dB -8dB -21dB .. -57dB + {2, 6, 2, 1}, // 41 .. -24dB -2dB -3dB -27dB .. -56dB + {0, 5, 2, 3}, // 42 .. -33dB -4dB -3dB -15dB .. -55dB + {2, 0, 2, 6}, // 43 .. -24dB -24dB -3dB -3dB .. -54dB + {0, 3, 0, 6}, // 44 .. -33dB -9dB -8dB -3dB .. -53dB + {0, 6, 0, 4}, // 45 .. -33dB -2dB -8dB -9dB .. -52dB + {0, 3, 1, 6}, // 46 .. -33dB -9dB -6dB -3dB .. -51dB + {1, 2, 3, 5}, // 47 .. -30dB -14dB 0dB -6dB .. -50dB + {0, 5, 1, 5}, // 48 .. -33dB -4dB -6dB -6dB .. -49dB + {0, 3, 3, 5}, // 49 .. -33dB -9dB 0dB -6dB .. -48dB + {0, 6, 2, 4}, // 50 .. -33dB -2dB -3dB -9dB .. -47dB + {1, 5, 2, 4}, // 51 .. -30dB -4dB -3dB -9dB .. -46dB + {3, 0, 1, 3}, // 52 .. 0dB -24dB -6dB -15dB .. -45dB + {0, 6, 1, 6}, // 53 .. -33dB -2dB -6dB -3dB .. -44dB + {1, 5, 2, 5}, // 54 .. -30dB -4dB -3dB -6dB .. -43dB + {0, 4, 2, 7}, // 55 .. -33dB -6dB -3dB 0dB .. -42dB + {2, 2, 2, 7}, // 56 .. -24dB -14dB -3dB 0dB .. -41dB + {2, 5, 2, 4}, // 57 .. -24dB -4dB -3dB -9dB .. -40dB + {2, 3, 3, 5}, // 58 .. -24dB -9dB 0dB -6dB .. -39dB + {1, 6, 3, 5}, // 59 .. -30dB -2dB 0dB -6dB .. -38dB + {2, 5, 1, 6}, // 60 .. -24dB -4dB -6dB -3dB .. -37dB + {3, 3, 3, 1}, // 61 .. 0dB -9dB 0dB -27dB .. -36dB + {3, 2, 3, 2}, // 62 .. 0dB -14dB 0dB -21dB .. -35dB + {2, 5, 2, 6}, // 63 .. -24dB -4dB -3dB -3dB .. -34dB + {3, 0, 1, 6}, // 64 .. 0dB -24dB -6dB -3dB .. -33dB + {3, 0, 0, 7}, // 65 .. 0dB -24dB -8dB 0dB .. -32dB + {2, 5, 3, 6}, // 66 .. -24dB -4dB 0dB -3dB .. -31dB + {3, 3, 3, 2}, // 67 .. 0dB -9dB 0dB -21dB .. -30dB + {2, 6, 3, 6}, // 68 .. -24dB -2dB 0dB -3dB .. -29dB {3, 2, 0, 5}, // 69 .. 0dB -14dB -8dB -6dB .. -28dB - {3, 4, 1, 3}, // 70 .. 0dB -6dB -6dB -15dB .. -27dB - {3, 2, 2, 4}, // 71 .. 0dB -14dB -3dB -9dB .. -26dB - {3, 1, 2, 6}, // 72 .. 0dB -19dB -3dB -3dB .. -25dB - {3, 3, 1, 4}, // 73 .. 0dB -9dB -6dB -9dB .. -24dB - {3, 2, 1, 6}, // 74 .. 0dB -14dB -6dB -3dB .. -23dB - {3, 5, 2, 3}, // 75 .. 0dB -4dB -3dB -15dB .. -22dB - {3, 4, 1, 4}, // 76 .. 0dB -6dB -6dB -9dB .. -21dB - {3, 4, 0, 5}, // 77 .. 0dB -6dB -8dB -6dB .. -20dB - {3, 5, 1, 4}, // 78 .. 0dB -4dB -6dB -9dB .. -19dB + {3, 5, 0, 3}, // 70 .. 0dB -4dB -8dB -15dB .. -27dB + {3, 3, 0, 4}, // 71 .. 0dB -9dB -8dB -9dB .. -26dB + {3, 1, 1, 7}, // 72 .. 0dB -19dB -6dB 0dB .. -25dB + {3, 4, 2, 3}, // 73 .. 0dB -6dB -3dB -15dB .. -24dB + {3, 4, 0, 4}, // 74 .. 0dB -6dB -8dB -9dB .. -23dB + {3, 2, 0, 7}, // 75 .. 0dB -14dB -8dB 0dB .. -22dB + {3, 7, 1, 3}, // 76 .. 0dB 0dB -6dB -15dB .. -21dB + {3, 6, 2, 3}, // 77 .. 0dB -2dB -3dB -15dB .. -20dB + {3, 5, 3, 3}, // 78 .. 0dB -4dB 0dB -15dB .. -19dB {3, 3, 3, 4}, // 79 .. 0dB -9dB 0dB -9dB .. -18dB {3, 2, 3, 6}, // 80 .. 0dB -14dB 0dB -3dB .. -17dB original - {3, 5, 1, 5}, // 81 .. 0dB -4dB -6dB -6dB .. -16dB - {3, 3, 1, 7}, // 82 .. 0dB -9dB -6dB 0dB .. -15dB + {3, 6, 0, 5}, // 81 .. 0dB -2dB -8dB -6dB .. -16dB + {3, 7, 1, 4}, // 82 .. 0dB 0dB -6dB -9dB .. -15dB {3, 2, 3, 7}, // 83 .. 0dB -14dB 0dB 0dB .. -14dB - {3, 5, 1, 6}, // 84 .. 0dB -4dB -6dB -3dB .. -13dB - {3, 4, 2, 6}, // 85 .. 0dB -6dB -3dB -3dB .. -12dB - {3, 5, 2, 6}, // 86 .. 0dB -4dB -3dB -3dB .. -10dB - {3, 4, 3, 6}, // 87 .. 0dB -6dB 0dB -3dB .. -9dB - {3, 5, 2, 7}, // 88 .. 0dB -4dB -3dB 0dB .. -7dB - {3, 4, 3, 7}, // 89 .. 0dB -6dB 0dB 0dB .. -6dB - {3, 5, 3, 7} // 90 .. 0dB -4dB 0dB 0dB .. -4dB + {3, 6, 0, 6}, // 84 .. 0dB -2dB -8dB -3dB .. -13dB + {3, 3, 2, 7}, // 85 .. 0dB -9dB -3dB 0dB .. -12dB + {3, 7, 0, 6}, // 86 .. 0dB 0dB -8dB -3dB .. -11dB + {3, 5, 3, 5}, // 87 .. 0dB -4dB 0dB -6dB .. -10dB + {3, 7, 2, 5}, // 88 .. 0dB 0dB -3dB -6dB .. -9dB + {3, 6, 3, 5}, // 89 .. 0dB -2dB 0dB -6dB .. -8dB + {3, 5, 2, 7}, // 90 .. 0dB -4dB -3dB 0dB .. -7dB + {3, 7, 2, 6}, // 91 .. 0dB 0dB -3dB -3dB .. -6dB + {3, 6, 2, 7}, // 92 .. 0dB -2dB -3dB 0dB .. -5dB + {3, 5, 3, 7}, // 93 .. 0dB -4dB 0dB 0dB .. -4dB + {3, 7, 2, 7}, // 94 .. 0dB 0dB -3dB 0dB .. -3dB + {3, 6, 3, 7}, // 95 .. 0dB -2dB 0dB 0dB .. -2dB + {3, 7, 3, 7} // 96 .. 0dB 0dB 0dB 0dB .. 0dB }; const unsigned int original_index = 80; @@ -306,6 +314,9 @@ const uint8_t orig_pga = 6; // -3dB // used to correct the RSSI readings after our front end gain adjustments 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; + void AM_fix_reset(const int vfo) { // reset the AM fixer @@ -322,6 +333,26 @@ const uint8_t orig_pga = 6; // -3dB #endif am_fix_gain_table_index_prev[vfo] = 0; + + #if 0 + { // set the maximum gain we want to use +// const int16_t max_gain_dB = lna_short_dB[orig_lna_short] + lna_dB[orig_lna] + mixer_dB[orig_mixer] + pga_dB[orig_pga]; + const int16_t max_gain_dB = -10; + max_index = ARRAY_SIZE(am_fix_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) + break; + } + } + #else + max_index = ARRAY_SIZE(am_fix_gain_table) - 1; + #endif } // adjust the RX RF gain to try and prevent the AM demodulator from @@ -360,35 +391,36 @@ const uint8_t orig_pga = 6; // -3dB break; } - { // sample the current RSSI level, average it with the previous rssi + { // sample the current RSSI level + // average it with the previous rssi (a bit of noise/spike immunity) const int16_t new_rssi = BK4819_GetRSSI(); -// rssi = (prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; - rssi = (prev_rssi[vfo] > 0 && new_rssi > prev_rssi[vfo]) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; + rssi = (prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; +// rssi = (new_rssi > prev_rssi[vfo] && prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; prev_rssi[vfo] = new_rssi; } + { // save the corrected RSSI level + const int16_t new_rssi = rssi - (rssi_db_gain_diff[vfo] * 2); + if (gCurrentRSSI[vfo] != new_rssi) + { + gCurrentRSSI[vfo] = new_rssi; + gUpdateDisplay = true; + } + } + #ifdef ENABLE_AM_FIX_TEST1 // user is manually adjusting a gain register - don't do anything automatically - { + { 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; - am_fix_gain_table_index[vfo] = i; + + if (am_fix_gain_table_index[vfo] == i) + return; // no change } - - if (am_gain_hold_counter[vfo] > 0) - { - if (--am_gain_hold_counter[vfo] > 0) - { - gCurrentRSSI[vfo] = rssi - (rssi_db_gain_diff[vfo] * 2); // save the corrected RSSI level - return; - } - } - - am_gain_hold_counter[vfo] = 30; // update register once every 300ms #else - // automatically choose a front end gain setting by monitoring the RSSI + // automatically adjust the RF RX gain if (am_gain_hold_counter[vfo] > 0) am_gain_hold_counter[vfo]--; @@ -399,19 +431,19 @@ const uint8_t orig_pga = 6; // -3dB if (diff_dB > 0) { // decrease gain - if (diff_dB >= 12) + unsigned int index = am_fix_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) - unsigned int index = am_fix_gain_table_index[vfo]; // current position we're at - - unsigned int lna_short = am_fix_gain_table[index].lna_short; - unsigned int lna = am_fix_gain_table[index].lna; - unsigned int mixer = am_fix_gain_table[index].mixer; - unsigned int pga = am_fix_gain_table[index].pga; + 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 + 6; // 6dB headroom + 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) // scan the table to see what index to jump straight too while (index > 1) @@ -430,43 +462,38 @@ const uint8_t orig_pga = 6; // -3dB } } - //am_fix_gain_table_index[vfo] = (am_fix_gain_table_index[vfo] + index) / 2; // easy does it - am_fix_gain_table_index[vfo] = index; // noo, go now ! + //index = (am_fix_gain_table_index[vfo] + index) / 2; // easy does it } else { // incrementally reduce the gain .. taking it slow improves noise/spike immunity -// if (am_fix_gain_table_index[vfo] >= (1 + 3) && diff_dB >= 3) -// am_fix_gain_table_index[vfo] -= 3; // faster gain reduction +// if (index >= (1 + 3) && diff_dB >= 3) +// index -= 3; // faster gain reduction // else - if (am_fix_gain_table_index[vfo] > 1) - am_fix_gain_table_index[vfo]--; // slow step-by-step gain reduction + if (index > 1) + index--; // slow step-by-step gain reduction } + + index = (index < 1) ? 1 : (index > max_index) ? max_index : index; - am_gain_hold_counter[vfo] = 30; // 300ms hold + if (am_fix_gain_table_index[vfo] != index) + { + am_fix_gain_table_index[vfo] = index; + am_gain_hold_counter[vfo] = 30; // 300ms hold + } } - else if (diff_dB >= -4) // 4dB hysterisis (help reduce gain hunting) am_gain_hold_counter[vfo] = 30; // 300ms hold if (am_gain_hold_counter[vfo] == 0) { // hold has been released, we're free to increase gain - - if (diff_dB < -4) // 4dB hysterisis (help reduce gain hunting) - { // increase gain - - if (am_fix_gain_table_index[vfo] < (ARRAY_SIZE(am_fix_gain_table) - 1)) - am_fix_gain_table_index[vfo]++; - } + 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 } if (am_fix_gain_table_index[vfo] == am_fix_gain_table_index_prev[vfo]) - { // no gain changes have been made - - gCurrentRSSI[vfo] = rssi - (rssi_db_gain_diff[vfo] * 2); // save the corrected RSSI level - return; - } + return; // no gain changes have been made #endif @@ -474,10 +501,10 @@ const uint8_t orig_pga = 6; // -3dB const unsigned int index = am_fix_gain_table_index[vfo]; - const uint16_t lna_short = am_fix_gain_table[index].lna_short; - const uint16_t lna = am_fix_gain_table[index].lna; - const uint16_t mixer = am_fix_gain_table[index].mixer; - const uint16_t pga = am_fix_gain_table[index].pga; + 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 orig_dB_gain = lna_short_dB[orig_lna_short] + lna_dB[orig_lna] + mixer_dB[orig_mixer] + pga_dB[orig_pga]; const int16_t am_dB_gain = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; @@ -489,15 +516,20 @@ const uint8_t orig_pga = 6; // -3dB // gain difference from original QS setting rssi_db_gain_diff[vfo] = am_dB_gain - orig_dB_gain; - // save the corrected RSSI level - gCurrentRSSI[vfo] = rssi - (rssi_db_gain_diff[vfo] * 2); - // remember the new table index am_fix_gain_table_index_prev[vfo] = index; + + { // save the corrected RSSI level + const int16_t new_rssi = rssi - (rssi_db_gain_diff[vfo] * 2); + if (gCurrentRSSI[vfo] != new_rssi) + { + gCurrentRSSI[vfo] = new_rssi; + gUpdateDisplay = true; + } + } } #ifdef ENABLE_AM_FIX_SHOW_DATA - // trigger display update so the user can see the data as it changes gUpdateDisplay = true; #endif } @@ -506,19 +538,15 @@ const uint8_t orig_pga = 6; // -3dB void AM_fix_print_data(const int vfo, char *s) { - if (s == NULL) - return; - // fetch current register settings - const uint16_t lna_short = am_fix_gain_table[am_fix_gain_table_index[vfo]].lna_short; - const uint16_t lna = am_fix_gain_table[am_fix_gain_table_index[vfo]].lna; - const uint16_t mixer = am_fix_gain_table[am_fix_gain_table_index[vfo]].mixer; - const uint16_t pga = am_fix_gain_table[am_fix_gain_table_index[vfo]].pga; - - // compute the current front end gain - const int16_t dB_gain = lna_short_dB[lna_short] + lna_dB[lna] + mixer_dB[mixer] + pga_dB[pga]; - - sprintf(s, "idx %2d %4ddB %3u", am_fix_gain_table_index[vfo], dB_gain, prev_rssi[vfo]); + 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]); } #endif diff --git a/firmware.bin b/firmware.bin index 4256cc2a5767a7381012e9fd968f7b70b0b44152..ae1f26adc2b2051f952c4c8983748891056617e9 100644 GIT binary patch delta 10559 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 CCbND3 delta 10417 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 R$y5vpv1uV?fa8IZxjTSI97t#_x^y^ zGl7Bw6cM02!EqeoBCg{M3@K+B7;?@sFn~ri*|%o9-6&)?W>l15`2Jnz7yI5HTSL9V zyrmMpf1myH_xBn9zkfgb^OtgvPq3c?gK+`FhY7zK85CF;zJC{+yn2Hoa_>fC{)9hL-Y1@e=JlUm`1bwAcNSx9-rMyl#gd6DzYIV<>|mqZgwalM^!|n;NqYGar*1vmR3xlNyT=lP8NBYaSCXYbdiWs|ULp zdjM-Dn<;BDlQ*LoOCTFFO9@*LD>G{edmfuGlR8T>3qP|ut20|RGdHU-vp0)7n?8#+ zTR5{Zi!iG>OFm0Bn>njKdp5f{4_h!>I9oAWID0XB`R3A{uX(j^8D22|X8-_M*?SHE diff --git a/firmware.packed.bin b/firmware.packed.bin index 91a8f8d71f2c7f0d0966ca029aa50c02682d786f..828f0ca672c884b6c885f440e8138fed747b5321 100644 GIT binary patch delta 31454 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 delta 31414 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 diff --git a/utils/main.cpp b/utils/main.cpp index 2d963ab..d92964b 100644 --- a/utils/main.cpp +++ b/utils/main.cpp @@ -99,7 +99,7 @@ void create_gain_table(const char *filename) const uint8_t pga_min = 0; // 0 const uint8_t lna_short_max = 3; // 3 - const uint8_t lna_max = 5; // 5 + const uint8_t lna_max = 7; // 5 const uint8_t mixer_max = 3; // 3 const uint8_t pga_max = 7; // 7 diff --git a/utils/misc.exe b/utils/misc.exe index 19fb035ef23a5a2126670394f6a16188c6afe2d2..e43b07042f18b4d133433c5335b6d926588a84b3 100644 GIT binary patch delta 4472 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 delta 4514 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