AGC debugging option
This commit is contained in:
8
Makefile
8
Makefile
@@ -34,7 +34,6 @@ ENABLE_SHOW_CHARGE_LEVEL := 0
|
|||||||
ENABLE_REVERSE_BAT_SYMBOL := 0
|
ENABLE_REVERSE_BAT_SYMBOL := 0
|
||||||
ENABLE_NO_CODE_SCAN_TIMEOUT := 1
|
ENABLE_NO_CODE_SCAN_TIMEOUT := 1
|
||||||
ENABLE_AM_FIX := 1
|
ENABLE_AM_FIX := 1
|
||||||
ENABLE_AM_FIX_SHOW_DATA := 0
|
|
||||||
ENABLE_SQUELCH_MORE_SENSITIVE := 1
|
ENABLE_SQUELCH_MORE_SENSITIVE := 1
|
||||||
ENABLE_FASTER_CHANNEL_SCAN := 1
|
ENABLE_FASTER_CHANNEL_SCAN := 1
|
||||||
ENABLE_RSSI_BAR := 1
|
ENABLE_RSSI_BAR := 1
|
||||||
@@ -46,6 +45,10 @@ ENABLE_BYP_RAW_DEMODULATORS := 0
|
|||||||
ENABLE_BLMIN_TMP_OFF := 0
|
ENABLE_BLMIN_TMP_OFF := 0
|
||||||
ENABLE_SCAN_RANGES := 1
|
ENABLE_SCAN_RANGES := 1
|
||||||
|
|
||||||
|
# ---- DEBUGGING ----
|
||||||
|
ENABLE_AM_FIX_SHOW_DATA := 0
|
||||||
|
ENABLE_AGC_SHOW_DATA := 0
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
TARGET = firmware
|
TARGET = firmware
|
||||||
@@ -358,6 +361,9 @@ endif
|
|||||||
ifeq ($(ENABLE_DTMF_CALLING),1)
|
ifeq ($(ENABLE_DTMF_CALLING),1)
|
||||||
CFLAGS += -DENABLE_DTMF_CALLING
|
CFLAGS += -DENABLE_DTMF_CALLING
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(ENABLE_AGC_SHOW_DATA),1)
|
||||||
|
CFLAGS += -DENABLE_AGC_SHOW_DATA
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
ifeq ($(ENABLE_CLANG),0)
|
ifeq ($(ENABLE_CLANG),0)
|
||||||
|
@@ -1564,6 +1564,7 @@ void APP_TimeSlice500ms(void)
|
|||||||
|
|
||||||
BATTERY_TimeSlice500ms();
|
BATTERY_TimeSlice500ms();
|
||||||
SCANNER_TimeSlice500ms();
|
SCANNER_TimeSlice500ms();
|
||||||
|
UI_MAIN_TimeSlice500ms();
|
||||||
|
|
||||||
#ifdef ENABLE_DTMF_CALLING
|
#ifdef ENABLE_DTMF_CALLING
|
||||||
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
||||||
|
@@ -56,6 +56,14 @@ void ST7565_BlitFullScreen(void)
|
|||||||
SPI_ToggleMasterMode(&SPI0->CR, true);
|
SPI_ToggleMasterMode(&SPI0->CR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ST7565_BlitLine(unsigned line)
|
||||||
|
{
|
||||||
|
SPI_ToggleMasterMode(&SPI0->CR, false);
|
||||||
|
ST7565_WriteByte(0x40); // start line ?
|
||||||
|
DrawLine(0, line+1, gFrameBuffer[line], LCD_WIDTH);
|
||||||
|
SPI_ToggleMasterMode(&SPI0->CR, true);
|
||||||
|
}
|
||||||
|
|
||||||
void ST7565_BlitStatusLine(void)
|
void ST7565_BlitStatusLine(void)
|
||||||
{ // the top small text line on the display
|
{ // the top small text line on the display
|
||||||
SPI_ToggleMasterMode(&SPI0->CR, false);
|
SPI_ToggleMasterMode(&SPI0->CR, false);
|
||||||
|
@@ -29,6 +29,7 @@ extern uint8_t gFrameBuffer[FRAME_LINES][LCD_WIDTH];
|
|||||||
|
|
||||||
void ST7565_DrawLine(const unsigned int Column, const unsigned int Line, const uint8_t *pBitmap, const unsigned int Size);
|
void ST7565_DrawLine(const unsigned int Column, const unsigned int Line, const uint8_t *pBitmap, const unsigned int Size);
|
||||||
void ST7565_BlitFullScreen(void);
|
void ST7565_BlitFullScreen(void);
|
||||||
|
void ST7565_BlitLine(unsigned line);
|
||||||
void ST7565_BlitStatusLine(void);
|
void ST7565_BlitStatusLine(void);
|
||||||
void ST7565_FillScreen(uint8_t Value);
|
void ST7565_FillScreen(uint8_t Value);
|
||||||
void ST7565_Init(void);
|
void ST7565_Init(void);
|
||||||
|
52
ui/main.c
52
ui/main.c
@@ -249,6 +249,53 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_AGC_SHOW_DATA
|
||||||
|
static void PrintAGC(bool now)
|
||||||
|
{
|
||||||
|
char buf[20];
|
||||||
|
memset(gFrameBuffer[3], 0, 128);
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
uint16_t _ : 5;
|
||||||
|
uint16_t agcSigStrength : 7;
|
||||||
|
int16_t gainIdx : 3;
|
||||||
|
uint16_t agcEnab : 1;
|
||||||
|
};
|
||||||
|
uint16_t __raw;
|
||||||
|
} reg7e;
|
||||||
|
reg7e.__raw = BK4819_ReadRegister(0x7E);
|
||||||
|
uint8_t gainAddr = reg7e.gainIdx < 0 ? 0x14 : 0x10 + reg7e.gainIdx;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
uint16_t pga:3;
|
||||||
|
uint16_t mixer:2;
|
||||||
|
uint16_t lna:3;
|
||||||
|
uint16_t lnaS:2;
|
||||||
|
};
|
||||||
|
uint16_t __raw;
|
||||||
|
} agcGainReg;
|
||||||
|
agcGainReg.__raw = BK4819_ReadRegister(gainAddr);
|
||||||
|
int8_t lnaShortTab[] = {-28, -24, -19, 0};
|
||||||
|
int8_t lnaTab[] = {-24, -19, -14, -9, -6, -4, -2, 0};
|
||||||
|
int8_t mixerTab[] = {-8, -6, -3, 0};
|
||||||
|
int8_t pgaTab[] = {-33, -27, -21, -15, -9, -6, -3, 0};
|
||||||
|
int16_t agcGain = lnaShortTab[agcGainReg.lnaS] + lnaTab[agcGainReg.lna] + mixerTab[agcGainReg.mixer] + pgaTab[agcGainReg.pga];
|
||||||
|
|
||||||
|
sprintf(buf, "%d%2d %2d %2d %3d", reg7e.agcEnab, reg7e.gainIdx, -agcGain, reg7e.agcSigStrength, BK4819_GetRSSI());
|
||||||
|
UI_PrintStringSmall(buf, 2, 0, 3);
|
||||||
|
if(now)
|
||||||
|
ST7565_BlitLine(3);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void UI_MAIN_TimeSlice500ms(void)
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_AGC_SHOW_DATA
|
||||||
|
if(gScreenToDisplay==DISPLAY_MAIN)
|
||||||
|
PrintAGC(true);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
||||||
void UI_DisplayMain(void)
|
void UI_DisplayMain(void)
|
||||||
@@ -672,6 +719,11 @@ void UI_DisplayMain(void)
|
|||||||
UI_PrintStringSmall("SCR", LCD_WIDTH + 106, 0, line + 1);
|
UI_PrintStringSmall("SCR", LCD_WIDTH + 106, 0, line + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_AGC_SHOW_DATA
|
||||||
|
center_line = CENTER_LINE_IN_USE;
|
||||||
|
PrintAGC(false);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (center_line == CENTER_LINE_NONE)
|
if (center_line == CENTER_LINE_NONE)
|
||||||
{ // we're free to use the middle line
|
{ // we're free to use the middle line
|
||||||
|
|
||||||
|
@@ -33,6 +33,7 @@ extern const int8_t dBmCorrTable[7];
|
|||||||
|
|
||||||
void UI_DisplayAudioBar(void);
|
void UI_DisplayAudioBar(void);
|
||||||
void UI_UpdateRSSI(const int16_t rssi, const int vfo);
|
void UI_UpdateRSSI(const int16_t rssi, const int vfo);
|
||||||
|
void UI_MAIN_TimeSlice500ms(void);
|
||||||
void UI_DisplayMain(void);
|
void UI_DisplayMain(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user