You've already forked TEF6686_ESP32
246 lines
8.4 KiB
C
246 lines
8.4 KiB
C
#define ON 1
|
|
#define OFF 0
|
|
#define REVERSE false
|
|
|
|
#define MAX(x, y) ((x) < (y) ? (y) : (x))
|
|
#define MIN(X, Y) ({\
|
|
typeof (X) x_ = (X);\
|
|
typeof (Y) y_ = (Y);\
|
|
(x_ < y_) ? x_ : y_; })
|
|
|
|
#define TIMER_OFFSET_TIMER (TIMER_500_TICK)
|
|
#define TIMER_BW_TIMER (TIMER_500_TICK)
|
|
#define TIMER_SNR_TIMER (TIMER_500_TICK)
|
|
#define TIMER_BAT_TIMER (TIMER_500_TICK)
|
|
#define TIMER_SCREENSAVER_BASE 1000000
|
|
#define TIMER_500_TICK 500
|
|
|
|
#define BAT_LEVEL_EMPTY 1600
|
|
#define BAT_LEVEL_WARN 1700
|
|
#define BAT_LEVEL_FULL 2270
|
|
#define BAT_LEVEL_STAGE 4
|
|
|
|
#define FREQ_MW_STEP_9K 9
|
|
#define FREQ_MW_STEP_10K 10
|
|
#define FREQ_SW_STEP_5K 5
|
|
#define FREQ_FM_STEP_30K 3
|
|
#define FREQ_FM_STEP_50K 5
|
|
#define FREQ_FM_STEP_100K 10
|
|
|
|
#define FREQ_LW_LOW_EDGE_MIN 144
|
|
#define FREQ_LW_HIGH_EDGE_MAX 519
|
|
#define FREQ_MW_LOW_EDGE_MIN_9K 522
|
|
#define FREQ_MW_LOW_EDGE_MIN_10K 520
|
|
#define FREQ_MW_HIGH_EDGE_MAX_9K 1791
|
|
#define FREQ_MW_HIGH_EDGE_MAX_10K 1700
|
|
#define FREQ_SW_LOW_EDGE_MIN 1700
|
|
#define FREQ_SW_LOW_EDGE_MAX (FREQ_SW_160M_START)
|
|
#define FREQ_SW_HIGH_EDGE_MIN (FREQ_SW_11M_END)
|
|
#define FREQ_SW_HIGH_EDGE_MAX (FREQ_SW_END)
|
|
#define FREQ_FM_START 65000
|
|
#define FREQ_FM_END 108000
|
|
#define FREQ_FM_OIRT_START 6575 // use values of 1/10 * kHz
|
|
#define FREQ_FM_OIRT_END 7400 // use values of 1/10 * kHz
|
|
|
|
// according to https://www.short-wave.info/index.php?feature=frequencies
|
|
#define FREQ_SW_START 1800
|
|
#define FREQ_SW_END 27000
|
|
#define FREQ_SW_160M_START 1800
|
|
#define FREQ_SW_160M_END 2000
|
|
#define FREQ_SW_120M_START 2300
|
|
#define FREQ_SW_120M_END 2495
|
|
#define FREQ_SW_90M_START 3200
|
|
#define FREQ_SW_90M_END 3400
|
|
#define FREQ_SW_75M_START 3900
|
|
#define FREQ_SW_75M_END 4000
|
|
#define FREQ_SW_60M_START 4750
|
|
#define FREQ_SW_60M_END 4995
|
|
#define FREQ_SW_49M_START 5900
|
|
#define FREQ_SW_49M_END 6200
|
|
#define FREQ_SW_41M_START 7200
|
|
#define FREQ_SW_41M_END 7450
|
|
#define FREQ_SW_31M_START 9400
|
|
#define FREQ_SW_31M_END 9900
|
|
#define FREQ_SW_25M_START 11600
|
|
#define FREQ_SW_25M_END 12100
|
|
#define FREQ_SW_22M_START 13570
|
|
#define FREQ_SW_22M_END 13870
|
|
#define FREQ_SW_19M_START 15100
|
|
#define FREQ_SW_19M_END 15800
|
|
#define FREQ_SW_16M_START 17480
|
|
#define FREQ_SW_16M_END 17900
|
|
#define FREQ_SW_15M_START 18900
|
|
#define FREQ_SW_15M_END 19020
|
|
#define FREQ_SW_13M_START 21450
|
|
#define FREQ_SW_13M_END 21850
|
|
#define FREQ_SW_11M_START 25670
|
|
#define FREQ_SW_11M_END 26100
|
|
|
|
#define SW_MI_BAND_GAP 0
|
|
#define SW_MI_BAND_11M 11
|
|
#define SW_MI_BAND_13M 13
|
|
#define SW_MI_BAND_15M 15
|
|
#define SW_MI_BAND_16M 16
|
|
#define SW_MI_BAND_19M 19
|
|
#define SW_MI_BAND_22M 22
|
|
#define SW_MI_BAND_25M 25
|
|
#define SW_MI_BAND_31M 31
|
|
#define SW_MI_BAND_41M 41
|
|
#define SW_MI_BAND_49M 49
|
|
#define SW_MI_BAND_60M 60
|
|
#define SW_MI_BAND_75M 75
|
|
#define SW_MI_BAND_90M 90
|
|
#define SW_MI_BAND_120M 120
|
|
#define SW_MI_BAND_160M 160
|
|
|
|
static const uint8_t TEFLogo[] PROGMEM = {
|
|
0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x07, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xe0,
|
|
0xff, 0xff, 0xf9, 0xff, 0xff, 0x1f, 0xff, 0xe0, 0xff, 0xff, 0xfb, 0xff, 0xfe, 0x3f, 0xff, 0xe0,
|
|
0xff, 0xff, 0xfb, 0xff, 0xfe, 0x3f, 0xff, 0xe0, 0x7f, 0xff, 0xf3, 0xff, 0xfe, 0x3f, 0xff, 0xe0,
|
|
0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0xc0, 0x00, 0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0x80, 0x00,
|
|
0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0x80, 0x00, 0x01, 0xfc, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0x80,
|
|
0x01, 0xfc, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0xc0, 0x01, 0xfc, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0xc0,
|
|
0x01, 0xfc, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0xc0, 0x01, 0xfc, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0xc0,
|
|
0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0xc0, 0x00, 0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0x80, 0x00,
|
|
0x01, 0xfc, 0x03, 0xfc, 0x00, 0x3f, 0x80, 0x00, 0x01, 0xfc, 0x03, 0xfe, 0x00, 0x3f, 0x80, 0x00,
|
|
0x01, 0xfc, 0x03, 0xff, 0xfe, 0x3f, 0x80, 0x00, 0x01, 0xfc, 0x03, 0xff, 0xfe, 0x3f, 0x80, 0x00,
|
|
0x01, 0xfc, 0x01, 0xff, 0xff, 0x3f, 0x80, 0x00, 0x01, 0xfc, 0x01, 0xff, 0xff, 0x3f, 0x80, 0x00,
|
|
0x01, 0xfc, 0x00, 0x7f, 0xff, 0x3f, 0x80, 0x00
|
|
};
|
|
|
|
static const uint8_t RDSLogo[] PROGMEM = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00,
|
|
0x07, 0xfc, 0x00, 0x1f, 0xe8, 0x00, 0x03, 0xf8, 0x00,
|
|
0x07, 0xff, 0x00, 0x1f, 0xfc, 0x00, 0x0f, 0xfe, 0x00,
|
|
0x0f, 0xff, 0x80, 0x3f, 0xff, 0x00, 0x1f, 0xfc, 0x00,
|
|
0x0f, 0xff, 0xc0, 0x1f, 0xff, 0x00, 0x3f, 0xf8, 0x00,
|
|
0x0f, 0x8f, 0xc0, 0x3e, 0x3f, 0x80, 0x3e, 0x10, 0x00,
|
|
0x0f, 0x0f, 0x80, 0x3e, 0x0f, 0xc0, 0x3e, 0x00, 0x00,
|
|
0x1f, 0x0f, 0x80, 0x3c, 0x0f, 0x80, 0x7e, 0x00, 0x00,
|
|
0x1f, 0x0f, 0x9c, 0x7e, 0x0f, 0xce, 0x7f, 0x80, 0x00,
|
|
0x1f, 0xbf, 0x1e, 0x7c, 0x07, 0xce, 0x3f, 0xf0, 0x00,
|
|
0x1f, 0xfe, 0x1c, 0x7c, 0x0f, 0x9e, 0x3f, 0xf8, 0x00,
|
|
0x1f, 0xfc, 0x1c, 0x7c, 0x0f, 0x9c, 0x1f, 0xf8, 0x00,
|
|
0x3f, 0xf0, 0x3c, 0x78, 0x0f, 0x9c, 0x03, 0xf8, 0x00,
|
|
0x3e, 0xf8, 0x10, 0xf8, 0x1f, 0x14, 0x00, 0xf8, 0x00,
|
|
0x3e, 0xf8, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x00,
|
|
0x3e, 0x7c, 0x00, 0xf8, 0xfe, 0x00, 0xe1, 0xf8, 0x00,
|
|
0x3c, 0x7e, 0x00, 0xff, 0xfc, 0x00, 0xf7, 0xf0, 0x00,
|
|
0x7c, 0x7e, 0x01, 0xff, 0xf8, 0x01, 0xff, 0xe0, 0x00,
|
|
0x7c, 0x3f, 0x01, 0xff, 0xe0, 0x03, 0xff, 0xe0, 0x00,
|
|
0x7c, 0x3f, 0x01, 0xff, 0x80, 0x00, 0xff, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
};
|
|
|
|
static const uint8_t WiFi1[] PROGMEM = {
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x08, 0x00, 0x00,
|
|
0x00, 0x3c, 0x00, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00,
|
|
0x00, 0x18, 0x00, 0x00
|
|
};
|
|
|
|
static const uint8_t WiFi2[] PROGMEM = {
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x38, 0x00, 0x00,
|
|
0x00, 0xff, 0x00, 0x00,
|
|
0x01, 0xff, 0x80, 0x00,
|
|
0x03, 0xff, 0x80, 0x00,
|
|
0x03, 0xe7, 0x80, 0x00,
|
|
0x01, 0x83, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x18, 0x00, 0x00,
|
|
0x00, 0x3c, 0x00, 0x00,
|
|
0x00, 0x3c, 0x00, 0x00,
|
|
0x00, 0x18, 0x00, 0x00
|
|
};
|
|
|
|
static const uint8_t WiFi3[] PROGMEM = {
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x7f, 0x00, 0x00,
|
|
0x01, 0x80, 0xc0, 0x00,
|
|
0x02, 0x00, 0x20, 0x00,
|
|
0x04, 0x7e, 0x10, 0x00,
|
|
0x09, 0x80, 0x88, 0x00,
|
|
0x03, 0x00, 0x48, 0x00,
|
|
0x0c, 0x00, 0x20, 0x00,
|
|
0x04, 0x3e, 0x10, 0x00,
|
|
0x00, 0xc1, 0x00, 0x00,
|
|
0x01, 0x00, 0xc0, 0x00,
|
|
0x01, 0x36, 0x40, 0x00,
|
|
0x01, 0x43, 0x80, 0x00,
|
|
0x00, 0x80, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00,
|
|
0x00, 0x04, 0x00, 0x00,
|
|
0x00, 0x10, 0x00, 0x00,
|
|
0x00, 0x08, 0x00, 0x00
|
|
};
|
|
|
|
static const uint8_t WiFi4[] PROGMEM = {
|
|
0x00, 0xff, 0x80, 0x00,
|
|
0x03, 0xff, 0xe0, 0x00,
|
|
0x0f, 0xff, 0xf8, 0x00,
|
|
0x1f, 0xff, 0xfc, 0x00,
|
|
0x3f, 0xc1, 0xfe, 0x00,
|
|
0x7e, 0x00, 0x3f, 0x80,
|
|
0xfc, 0x00, 0x0f, 0x80,
|
|
0xf0, 0x7f, 0x07, 0x80,
|
|
0x61, 0xff, 0xc3, 0x80,
|
|
0x63, 0xff, 0xe1, 0x00,
|
|
0x07, 0xff, 0xf0, 0x00,
|
|
0x0f, 0xc0, 0xf8, 0x00,
|
|
0x0f, 0x00, 0x7c, 0x00,
|
|
0x0e, 0x00, 0x38, 0x00,
|
|
0x04, 0x3e, 0x08, 0x00,
|
|
0x00, 0x7f, 0x80, 0x00,
|
|
0x01, 0xff, 0xc0, 0x00,
|
|
0x01, 0xff, 0xc0, 0x00,
|
|
0x00, 0xe1, 0xc0, 0x00,
|
|
0x00, 0x80, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00,
|
|
0x00, 0x1e, 0x00, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00,
|
|
0x00, 0x08, 0x00, 0x00
|
|
}; |