Skip to content

Commit

Permalink
FIX egzumer#194: Spectrum going crazy when AM-fix is active
Browse files Browse the repository at this point in the history
  • Loading branch information
egzumer committed Dec 7, 2023
1 parent 5c1cb4f commit c697596
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
16 changes: 12 additions & 4 deletions app/spectrum.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ static uint16_t GetRegMenuValue(uint8_t st) {

void LockAGC()
{
RADIO_SetupAGC(true, lockAGC);
RADIO_SetupAGC(settings.modulationType==MODULATION_AM, lockAGC);
lockAGC = true;
}

Expand Down Expand Up @@ -290,8 +290,12 @@ uint16_t GetRssi() {
while ((BK4819_ReadRegister(0x63) & 0b11111111) >= 255) {
SYSTICK_DelayUs(100);
}

return BK4819_GetRSSI();
uint16_t rssi = BK4819_GetRSSI();
#ifdef ENABLE_AM_FIX
if(settings.modulationType==MODULATION_AM && gSetting_AM_fix)
rssi += AM_fix_get_gain_diff()*2;
#endif
return rssi;
}

static void ToggleAudio(bool on) {
Expand All @@ -309,6 +313,7 @@ static void ToggleAudio(bool on) {
static void ToggleRX(bool on) {
isListening = on;

RADIO_SetupAGC(on, lockAGC);
BK4819_ToggleGpioOut(BK4819_GPIO6_PIN2_GREEN, on);

ToggleAudio(on);
Expand Down Expand Up @@ -1121,8 +1126,11 @@ static void UpdateListening() {

static void Tick() {
#ifdef ENABLE_AM_FIX
if(settings.modulationType == MODULATION_AM) {
if (gNextTimeslice) {
gNextTimeslice = false;
if(settings.modulationType == MODULATION_AM) {
AM_fix_10ms(vfo, !lockAGC); //allow AM_Fix to apply its AGC action
}
}
#endif

Expand Down
2 changes: 1 addition & 1 deletion radio.c
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ void RADIO_SetupAGC(bool listeningAM, bool disable)


if(!listeningAM) { // if not actively listening AM we don't need any AM specific regulation
BK4819_SetAGC(1);
BK4819_SetAGC(!disable);
BK4819_InitAGC(false);
}
else {
Expand Down

0 comments on commit c697596

Please sign in to comment.