diff --git a/Makefile b/Makefile index d84cda8..a535f4b 100644 --- a/Makefile +++ b/Makefile @@ -35,11 +35,11 @@ ENABLE_BOOT_BEEPS := 0 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 1 ENABLE_FREQ_SEARCH_TIMEOUT := 0 -ENABLE_CODE_SEARCH_TIMEOUT := 1 +ENABLE_CODE_SEARCH_TIMEOUT := 0 ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH_MORE_SENSITIVE := 1 -ENABLE_SQ_OPEN_WHITH_UP_DN_BUTTS := 1 +ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1 ENABLE_FASTER_CHANNEL_SCAN := 1 ENABLE_RSSI_BAR := 1 ENABLE_SHOW_TX_TIMEOUT := 0 diff --git a/app/app.c b/app/app.c index 7ef9f27..689d077 100644 --- a/app/app.c +++ b/app/app.c @@ -697,7 +697,7 @@ static void APP_next_freq(void) RADIO_setup_registers(true); #ifdef ENABLE_FASTER_CHANNEL_SCAN - g_scan_pause_delay_in_10ms = 7; // 70ms + g_scan_pause_delay_in_10ms = 8; // 80ms #else g_scan_pause_delay_in_10ms = scan_pause_delay_in_6_10ms; #endif diff --git a/bitmaps.c b/bitmaps.c index fbca511..a2430a4 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -125,11 +125,11 @@ const uint8_t BITMAP_KEYLOCK[6] = const uint8_t BITMAP_F_KEY[6] = { // F-Key symbol __extension__ 0b00000000, - __extension__ 0b01011111, - __extension__ 0b01000101, - __extension__ 0b01000101, - __extension__ 0b01000101, - __extension__ 0b01000001 + __extension__ 0b01111110, + __extension__ 0b01111111, + __extension__ 0b00011011, + __extension__ 0b00011011, + __extension__ 0b00011011 }; #ifdef ENABLE_VOX diff --git a/driver/bk4819.c b/driver/bk4819.c index 4372efc..adc986f 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -787,9 +787,7 @@ void BK4819_SetupSquelch( #else // faster (but twitchier) (1u << 14) | // 1 ??? -// (2u << 11) | // *5 squelch = open delay .. 0 ~ 7 -// (1u << 9) | // *3 squelch = close delay .. 0 ~ 3 - (1u << 11) | // *5 squelch = open delay .. 0 ~ 7 + (2u << 11) | // *5 squelch = open delay .. 0 ~ 7 (1u << 9) | // *3 squelch = close delay .. 0 ~ 3 squelch_open_glitch_thresh); // 0 ~ 255 #endif diff --git a/driver/st7565.c b/driver/st7565.c index 96faf7a..f5ee5df 100644 --- a/driver/st7565.c +++ b/driver/st7565.c @@ -151,51 +151,52 @@ void ST7565_Init(const bool full) if (full) { SPI0_Init(); - ST7565_HardwareReset(); - - SPI_ToggleMasterMode(&SPI0->CR, false); - - ST7565_WriteByte(0xE2); // internal reset - - SYSTEM_DelayMs(120); } - else - SPI_ToggleMasterMode(&SPI0->CR, false); - ST7565_WriteByte(0xA2); // bias 9 - ST7565_WriteByte(0xC0); // com normal - ST7565_WriteByte(0xA1); // reverse ? - - ST7565_WriteByte(0xA6); // normal screen ? -// ST7565_WriteByte(0xA7); // inverse screen ? - - ST7565_WriteByte(0xA4); // all points normal - ST7565_WriteByte(0x24); // - - ST7565_WriteByte(0x81); // - ST7565_WriteByte(contrast); // contrast ? 0 ~ 63 + SPI_ToggleMasterMode(&SPI0->CR, false); if (full) { - ST7565_WriteByte(0x2B); // power control ? + ST7565_WriteByte(0xE2); // internal reset + SYSTEM_DelayMs(120); + } + + ST7565_WriteByte(0xA2); // bias 9 +// ST7565_WriteByte(0xA3); // bias 7 - SYSTEM_DelayMs(1); + ST7565_WriteByte(0xC0); // COM normal +// ST7565_WriteByte(0xC8); // COM reverse - ST7565_WriteByte(0x2E); // power control ? +// ST7565_WriteByte(0xA0); // normal ADC .. mirrors the screen + ST7565_WriteByte(0xA1); // reverse ADC - SYSTEM_DelayMs(1); + ST7565_WriteByte(0xA6); // normal screen +// ST7565_WriteByte(0xA7); // inverse screen - ST7565_WriteByte(0x2F); // - ST7565_WriteByte(0x2F); // - ST7565_WriteByte(0x2F); // - ST7565_WriteByte(0x2F); // + ST7565_WriteByte(0xA4); // all points normal - SYSTEM_DelayMs(40); + ST7565_WriteByte(0x24); // ??? + + ST7565_WriteByte(0x81); // + ST7565_WriteByte(contrast); // brightness 0 ~ 63 + + if (full) + { + ST7565_WriteByte(0x28 | 4u); // enable voltage converter VC=1 VR=0 VF=0 + SYSTEM_DelayMs(50); + + ST7565_WriteByte(0x28 | 6u); // enable voltage regulator VC=1 VR=1 VF=0 + SYSTEM_DelayMs(50); + + ST7565_WriteByte(0x28 | 7u); // enable voltage follower VC=1 VR=1 VF=1 + SYSTEM_DelayMs(10); + + ST7565_WriteByte(0x20 | 6u); // set lcd operating voltage (regulator resistor, ref voltage resistor) } - ST7565_WriteByte(0x40); // start line ? - ST7565_WriteByte(0xAF); // display on ? + ST7565_WriteByte(0x40); // start line ? + ST7565_WriteByte(0xAF); // display on ? SPI_WaitForUndocumentedTxFifoStatusBit(); diff --git a/firmware.bin b/firmware.bin index 0b2a3dd..147163c 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index f7f9427..84884c9 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/ui/main.c b/ui/main.c index d0ca532..db2ece3 100644 --- a/ui/main.c +++ b/ui/main.c @@ -59,10 +59,21 @@ void draw_bar(uint8_t *line, const int len, const int max_width) line[i] = (i <= len) ? 0x7f : 0x41; #else // segmented bar - for (i = 0; i < max_width; i += 5) - for (int k = i - 5; k < i && k < len; k++) + for (i = 0; i < max_width; i += 4) + { + for (int k = i - 4; k < i && k < len; k++) + { if (k >= 0) - line[k] = (k < (i - 2)) ? 0x7f : 0x00; +// line[k] = (k < (i - 1)) ? 0x7f : 0x00; + if (k < (i - 1)) + line[k] = 0x3e; + } + } + // top/bottom lines + for (i = 0; i < len; i += 2) + line[i] |= 0x41; + for (i &= ~3u ; i < max_width; i += 4) + line[i] = 0x41; #endif }