Add overclock, k for PPB, and default no auto name

save_scan
erikkaashoek 3 years ago
parent ae025eba5b
commit 2692c3de59

@ -967,7 +967,7 @@ config_t config = {
#ifdef TINYSA4 #ifdef TINYSA4
.touch_cal = { 444, 715, 3552, 3499 }, // 4 inch panel .touch_cal = { 444, 715, 3552, 3499 }, // 4 inch panel
#endif #endif
._mode = _MODE_USB | _MODE_AUTO_FILENAME, ._mode = _MODE_USB,
._serial_speed = SERIAL_DEFAULT_BITRATE, ._serial_speed = SERIAL_DEFAULT_BITRATE,
.lcd_palette = LCD_DEFAULT_PALETTE, .lcd_palette = LCD_DEFAULT_PALETTE,
#ifdef TINYSA3 #ifdef TINYSA3
@ -1079,6 +1079,7 @@ config_t config = {
#ifdef TINYSA4 #ifdef TINYSA4
.direct_start = 965000000UL, .direct_start = 965000000UL,
.direct_stop = 985000000UL, .direct_stop = 985000000UL,
.overclock = 0,
.hide_21MHz = false, .hide_21MHz = false,
#endif #endif
}; };
@ -2852,16 +2853,16 @@ int main(void)
if (adc1_single_read(0)> 1000) if (adc1_single_read(0)> 1000)
max2871 = true; max2871 = true;
if (max2871) { if (max2871) {
MAX_LO_FREQ = 6000000000ULL; MAX_LO_FREQ = 6000000000ULL + config.overclock;
ULTRA_MAX_FREQ = 6950000000ULL; // Start of harmonic mode ULTRA_MAX_FREQ = 6950000000ULL + config.overclock; // Start of harmonic mode
MAX_ABOVE_IF_FREQ = 5021000000ULL; // Range to use for below IF MAX_ABOVE_IF_FREQ = 5021000000ULL + config.overclock; // Range to use for below IF
MIN_BELOW_IF_FREQ = 4041000000ULL; // Range to use for below IF MIN_BELOW_IF_FREQ = 4041000000ULL + config.overclock; // Range to use for below IF
} else { } else {
ULTRA_MAX_FREQ = 5340000000ULL; // Start of harmonic mode ULTRA_MAX_FREQ = 5340000000ULL + config.overclock; // Start of harmonic mode
MAX_LO_FREQ = 4350000000ULL; MAX_LO_FREQ = 4350000000ULL + config.overclock;
MAX_ABOVE_IF_FREQ = 3360000000ULL; // Range to use for below IF MAX_ABOVE_IF_FREQ = 3360000000ULL + config.overclock; // Range to use for below IF
MIN_BELOW_IF_FREQ = 2310000000ULL; // Range to use for below IF MIN_BELOW_IF_FREQ = 2310000000ULL + config.overclock; // Range to use for below IF
} }
set_jump_freq( MAX_ABOVE_IF_FREQ, ULTRA_MAX_FREQ); set_jump_freq( MAX_ABOVE_IF_FREQ, ULTRA_MAX_FREQ);
#endif #endif

@ -824,6 +824,7 @@ typedef struct config {
freq_t ultra_start; freq_t ultra_start;
freq_t direct_start; freq_t direct_start;
freq_t direct_stop; freq_t direct_stop;
freq_t overclock;
int8_t ultra; int8_t ultra;
#endif #endif
uint8_t input_is_calibrated; uint8_t input_is_calibrated;

@ -507,7 +507,7 @@ void update_min_max_freq(void)
if (setting.mixer_output) if (setting.mixer_output)
maxFreq = ULTRA_MAX_FREQ+60000000; // Add 60MHz to go to 5.40GHz maxFreq = ULTRA_MAX_FREQ+60000000; // Add 60MHz to go to 5.40GHz
else else
maxFreq = 4400000000ULL; // 4.4GHz maxFreq = 4400000000ULL+config.overclock; // 4.4GHz
#else #else
maxFreq = MAX_LOW_OUTPUT_FREQ; maxFreq = MAX_LOW_OUTPUT_FREQ;
#endif #endif

61
ui.c

@ -1339,7 +1339,7 @@ enum {
KM_LIMIT_FREQ, KM_LIMIT_LEVEL, KM_LIMIT_FREQ, KM_LIMIT_LEVEL,
#endif #endif
#ifdef __BANDS__ #ifdef __BANDS__
KM_BAND_START, KM_BAND_END, KM_BAND_LEVEL, KM_BAND_START, KM_BAND_END, KM_BAND_CENTER, KM_BAND_SPAN, KM_BAND_LEVEL,
#endif #endif
KM_MARKER_TIME, KM_MARKER_TIME,
// #35 // #35
@ -1351,6 +1351,7 @@ enum {
#ifdef TINYSA4 #ifdef TINYSA4
KM_DIRECT_START, KM_DIRECT_START,
KM_DIRECT_STOP, KM_DIRECT_STOP,
KM_OVERCLOCK,
#ifdef __USE_RTC__ #ifdef __USE_RTC__
KM_RTC_DATE, KM_RTC_DATE,
KM_RTC_TIME, KM_RTC_TIME,
@ -1383,7 +1384,7 @@ static const struct {
[KM_DECAY] = {keypads_positive , "DECAY"}, // KM_DECAY [KM_DECAY] = {keypads_positive , "DECAY"}, // KM_DECAY
[KM_NOISE] = {keypads_positive , "NOISE\nLEVEL"}, // KM_NOISE [KM_NOISE] = {keypads_positive , "NOISE\nLEVEL"}, // KM_NOISE
#ifdef TINYSA4 #ifdef TINYSA4
[KM_FREQ_CORR] = {keypads_plusmin , "PPB"}, // KM_FREQ_CORR [KM_FREQ_CORR] = {keypads_freq , "PPB"}, // KM_FREQ_CORR
#else #else
[KM_10MHZ] = {keypads_freq , "FREQ"}, // KM_10MHz [KM_10MHZ] = {keypads_freq , "FREQ"}, // KM_10MHz
#endif #endif
@ -1424,6 +1425,8 @@ static const struct {
#ifdef __BANDS__ #ifdef __BANDS__
[KM_BAND_START] = {keypads_freq , "START\nFREQ"}, // KM_BAND_START [KM_BAND_START] = {keypads_freq , "START\nFREQ"}, // KM_BAND_START
[KM_BAND_END] = {keypads_freq , "STOP\nFREQ"}, // KM_BAND_END [KM_BAND_END] = {keypads_freq , "STOP\nFREQ"}, // KM_BAND_END
[KM_BAND_CENTER] = {keypads_freq , "CENTER\nFREQ"}, // KM_BAND_CENTER
[KM_BAND_SPAN] = {keypads_freq , "SPAN\nFREQ"}, // KM_BAND_SPAN
[KM_BAND_LEVEL] = {keypads_plusmin_unit , "LEVEL"}, // KM_BAND_LEVEL [KM_BAND_LEVEL] = {keypads_plusmin_unit , "LEVEL"}, // KM_BAND_LEVEL
#endif #endif
[KM_MARKER_TIME] = {keypads_time , "MARKER\nTIME"}, // KM_MARKER_TIME [KM_MARKER_TIME] = {keypads_time , "MARKER\nTIME"}, // KM_MARKER_TIME
@ -1435,6 +1438,7 @@ static const struct {
#ifdef TINYSA4 #ifdef TINYSA4
[KM_DIRECT_START] = {keypads_freq , "DIRECT\nSTART"}, // KM_DIRECT_START [KM_DIRECT_START] = {keypads_freq , "DIRECT\nSTART"}, // KM_DIRECT_START
[KM_DIRECT_STOP] = {keypads_freq , "DIRECT\nSTOP"}, // KM_DIRECT_STOP [KM_DIRECT_STOP] = {keypads_freq , "DIRECT\nSTOP"}, // KM_DIRECT_STOP
[KM_OVERCLOCK] = {keypads_freq , "OVERCLOCK"}, // KM_OVERCLOCK
#ifdef __USE_RTC__ #ifdef __USE_RTC__
[KM_RTC_DATE] = {keypads_positive , "SET DATE\n YYMMDD"}, // Date [KM_RTC_DATE] = {keypads_positive , "SET DATE\n YYMMDD"}, // Date
[KM_RTC_TIME] = {keypads_positive , "SET TIME\n HHMMSS"}, // Time [KM_RTC_TIME] = {keypads_positive , "SET TIME\n HHMMSS"}, // Time
@ -4039,6 +4043,7 @@ static UI_FUNCTION_ADV_CALLBACK(menu_autoname_acb)
return; return;
} }
config._mode^= _MODE_AUTO_FILENAME; config._mode^= _MODE_AUTO_FILENAME;
config_save();
} }
#ifdef __SD_FILE_BROWSER__ #ifdef __SD_FILE_BROWSER__
@ -4287,8 +4292,10 @@ static const menuitem_t menu_limit_select[] = {
#ifdef __BANDS__ #ifdef __BANDS__
static const menuitem_t menu_band_modify[] = static const menuitem_t menu_band_modify[] =
{ {
{ MT_KEYPAD, KM_BAND_START, "START\n\b%s", "Start"}, { MT_KEYPAD, KM_BAND_START, "START\n\b%s", "Start"},
{ MT_KEYPAD, KM_BAND_END, "STOP\n\b%s", "Stop"}, { MT_KEYPAD, KM_BAND_END, "STOP\n\b%s", "Stop"},
{ MT_KEYPAD, KM_BAND_CENTER, "CENTER\n\b%s", "Center"},
{ MT_KEYPAD, KM_BAND_SPAN, "SPAN\n\b%s", "Span"},
{ MT_KEYPAD, KM_BAND_LEVEL, "LEVEL\n\b%s", "Level"}, { MT_KEYPAD, KM_BAND_LEVEL, "LEVEL\n\b%s", "Level"},
{ MT_CALLBACK,0, "DISABLE", menu_BAND_disable_cb}, { MT_CALLBACK,0, "DISABLE", menu_BAND_disable_cb},
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back { MT_NONE, 0, NULL, menu_back} // next-> menu_back
@ -4510,6 +4517,8 @@ static const menuitem_t menu_settings4[] =
{ MT_ADV_CALLBACK, 0, "DEBUG\nAVOID", menu_debug_avoid_acb}, { MT_ADV_CALLBACK, 0, "DEBUG\nAVOID", menu_debug_avoid_acb},
{ MT_ADV_CALLBACK, 0, "DEBUG\nSPUR", menu_debug_spur_acb}, { MT_ADV_CALLBACK, 0, "DEBUG\nSPUR", menu_debug_spur_acb},
{ MT_ADV_CALLBACK, 0, "HIDE\n21MHz", menu_hide_21MHz_acb}, { MT_ADV_CALLBACK, 0, "HIDE\n21MHz", menu_hide_21MHz_acb},
{ MT_KEYPAD, KM_OVERCLOCK, "OVERCLOCK\n\b%s", "Enter overclock amount"},
#if 0 // only used during development #if 0 // only used during development
{ MT_KEYPAD, KM_COR_AM, "COR\nAM", "Enter AM modulation correction"}, { MT_KEYPAD, KM_COR_AM, "COR\nAM", "Enter AM modulation correction"},
{ MT_KEYPAD, KM_COR_WFM, "COR\nWFM", "Enter WFM modulation correction"}, { MT_KEYPAD, KM_COR_WFM, "COR\nWFM", "Enter WFM modulation correction"},
@ -5138,6 +5147,10 @@ static void fetch_numeric_target(uint8_t mode)
uistat.freq_value = config.direct_stop; uistat.freq_value = config.direct_stop;
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value); plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break; break;
case KM_OVERCLOCK:
uistat.freq_value = config.overclock;
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break;
#endif #endif
#ifdef __LIMITS__ #ifdef __LIMITS__
case KM_LIMIT_FREQ: case KM_LIMIT_FREQ:
@ -5151,11 +5164,19 @@ static void fetch_numeric_target(uint8_t mode)
#endif #endif
#ifdef __BANDS__ #ifdef __BANDS__
case KM_BAND_START: case KM_BAND_START:
uistat.freq_value = setting.bands[active_band].start; uistat.freq_value = setting.bands[active_band].start + (setting.frequency_offset - FREQUENCY_SHIFT);;
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value); plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break; break;
case KM_BAND_END: case KM_BAND_END:
uistat.freq_value = setting.bands[active_band].end; uistat.freq_value = setting.bands[active_band].end + (setting.frequency_offset - FREQUENCY_SHIFT);;
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break;
case KM_BAND_CENTER:
uistat.freq_value = (setting.bands[active_band].start + setting.bands[active_band].start)/2 + (setting.frequency_offset - FREQUENCY_SHIFT);
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break;
case KM_BAND_SPAN:
uistat.freq_value = setting.bands[active_band].end-setting.bands[active_band].start;
plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value); plot_printf(uistat.text, sizeof uistat.text, "%.3QHz", uistat.freq_value);
break; break;
case KM_BAND_LEVEL: case KM_BAND_LEVEL:
@ -5368,6 +5389,10 @@ set_numeric_value(void)
config.direct_stop = uistat.freq_value; config.direct_stop = uistat.freq_value;
config_save(); config_save();
break; break;
case KM_OVERCLOCK:
config.overclock = uistat.freq_value;
config_save();
break;
#endif #endif
#ifdef TINYSA4 #ifdef TINYSA4
case KM_EXP_AVER: case KM_EXP_AVER:
@ -5403,6 +5428,30 @@ set_numeric_value(void)
update_grid(); update_grid();
// BANDs_update(); // BANDs_update();
break; break;
case KM_BAND_CENTER:
{
freq_t span = (setting.bands[active_band].end - setting.bands[active_band].start);
freq_t center = (setting.bands[active_band].end - setting.bands[active_band].start) + uistat.freq_value - (setting.frequency_offset - FREQUENCY_SHIFT);
setting.bands[active_band].start = center - span/2;
setting.bands[active_band].end = center + span/2;
update_frequencies();
dirty = true;
update_grid();
}
// BANDs_update();
break;
case KM_BAND_SPAN:
{
freq_t span = uistat.freq_value;
freq_t center = (setting.bands[active_band].end + setting.bands[active_band].start)/2;
setting.bands[active_band].start = center - span/2;
setting.bands[active_band].end = center + span/2;
update_frequencies();
dirty = true;
update_grid();
// BANDs_update();
}
break;
case KM_BAND_LEVEL: case KM_BAND_LEVEL:
setting.bands[active_band].level = to_dBm(uistat.value); setting.bands[active_band].level = to_dBm(uistat.value);
update_frequencies(); update_frequencies();

Loading…
Cancel
Save

Powered by TurnKey Linux.