mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-10-01 01:26:06 -04:00
support for a sdcard speed option (#1594)
* support for a sdcard speed option * trying to link sdio_cclk_set from file * changed io to IO in checkbox text * changed order so high speed option is read after pmem is restored from sd * test button * took out unneeded comment * force behavior of test button --------- Co-authored-by: GullCode <gullradriel@hotmail.com>
This commit is contained in:
parent
650aacfaa7
commit
309f2fbd2c
@ -343,6 +343,38 @@ void SetUIView::focus() {
|
|||||||
button_save.focus();
|
button_save.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* SetSDCardView *********************************************/
|
||||||
|
|
||||||
|
SetSDCardView::SetSDCardView(NavigationView& nav) {
|
||||||
|
add_children({&labels,
|
||||||
|
&checkbox_sdcard_speed,
|
||||||
|
&button_test_sdcard_high_speed,
|
||||||
|
&text_sdcard_test_status,
|
||||||
|
&button_save,
|
||||||
|
&button_cancel});
|
||||||
|
|
||||||
|
checkbox_sdcard_speed.set_value(pmem::config_sdcard_high_speed_io());
|
||||||
|
|
||||||
|
button_test_sdcard_high_speed.on_select = [&nav, this](Button&) {
|
||||||
|
pmem::set_config_sdcard_high_speed_io(true, false);
|
||||||
|
text_sdcard_test_status.set("!! HIGH SPEED MODE ON !!");
|
||||||
|
};
|
||||||
|
|
||||||
|
button_save.on_select = [&nav, this](Button&) {
|
||||||
|
pmem::set_config_sdcard_high_speed_io(checkbox_sdcard_speed.value(), true);
|
||||||
|
send_system_refresh();
|
||||||
|
nav.pop();
|
||||||
|
};
|
||||||
|
|
||||||
|
button_cancel.on_select = [&nav, this](Button&) {
|
||||||
|
nav.pop();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetSDCardView::focus() {
|
||||||
|
button_save.focus();
|
||||||
|
}
|
||||||
|
|
||||||
/* SetConverterSettingsView ******************************/
|
/* SetConverterSettingsView ******************************/
|
||||||
|
|
||||||
SetConverterSettingsView::SetConverterSettingsView(NavigationView& nav) {
|
SetConverterSettingsView::SetConverterSettingsView(NavigationView& nav) {
|
||||||
@ -636,6 +668,7 @@ SettingsMenuView::SettingsMenuView(NavigationView& nav) {
|
|||||||
{"QR Code", ui::Color::dark_cyan(), &bitmap_icon_qr_code, [&nav]() { nav.push<SetQRCodeView>(); }},
|
{"QR Code", ui::Color::dark_cyan(), &bitmap_icon_qr_code, [&nav]() { nav.push<SetQRCodeView>(); }},
|
||||||
{"Radio", ui::Color::dark_cyan(), &bitmap_icon_options_radio, [&nav]() { nav.push<SetRadioView>(); }},
|
{"Radio", ui::Color::dark_cyan(), &bitmap_icon_options_radio, [&nav]() { nav.push<SetRadioView>(); }},
|
||||||
{"User Interface", ui::Color::dark_cyan(), &bitmap_icon_options_ui, [&nav]() { nav.push<SetUIView>(); }},
|
{"User Interface", ui::Color::dark_cyan(), &bitmap_icon_options_ui, [&nav]() { nav.push<SetUIView>(); }},
|
||||||
|
{"SD Card", ui::Color::dark_cyan(), &bitmap_icon_sdcard, [&nav]() { nav.push<SetSDCardView>(); }},
|
||||||
});
|
});
|
||||||
set_max_rows(2); // allow wider buttons
|
set_max_rows(2); // allow wider buttons
|
||||||
}
|
}
|
||||||
|
@ -306,8 +306,43 @@ class SetUIView : public View {
|
|||||||
|
|
||||||
Button button_cancel{
|
Button button_cancel{
|
||||||
{16 * 8, 16 * 16, 12 * 8, 32},
|
{16 * 8, 16 * 16, 12 * 8, 32},
|
||||||
"Cancel",
|
"Cancel"};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class SetSDCardView : public View {
|
||||||
|
public:
|
||||||
|
SetSDCardView(NavigationView& nav);
|
||||||
|
|
||||||
|
void focus() override;
|
||||||
|
|
||||||
|
std::string title() const override { return "SD Card"; };
|
||||||
|
|
||||||
|
private:
|
||||||
|
Labels labels{
|
||||||
|
// 01234567890123456789012345678
|
||||||
|
{{1 * 8, 120 - 48}, " HIGH SPEED SDCARD IO ", Color::light_grey()},
|
||||||
|
{{1 * 8, 120 - 32}, " May or may not work !! ", Color::light_grey()}};
|
||||||
|
|
||||||
|
Checkbox checkbox_sdcard_speed{
|
||||||
|
{2 * 8, 120},
|
||||||
|
20,
|
||||||
|
"enable high speed IO"};
|
||||||
|
|
||||||
|
Button button_test_sdcard_high_speed{
|
||||||
|
{2 * 8, 152, 27 * 8, 32},
|
||||||
|
"TEST BUTTON (NO PMEM SAVE)"};
|
||||||
|
|
||||||
|
Text text_sdcard_test_status{
|
||||||
|
{2 * 8, 198, 28 * 8, 16},
|
||||||
|
""};
|
||||||
|
|
||||||
|
Button button_save{
|
||||||
|
{2 * 8, 16 * 16, 12 * 8, 32},
|
||||||
|
"Save"};
|
||||||
|
|
||||||
|
Button button_cancel{
|
||||||
|
{16 * 8, 16 * 16, 12 * 8, 32},
|
||||||
|
"Cancel"};
|
||||||
};
|
};
|
||||||
|
|
||||||
class SetConverterSettingsView : public View {
|
class SetConverterSettingsView : public View {
|
||||||
|
@ -171,6 +171,9 @@ SystemStatusView::SystemStatusView(
|
|||||||
pmem::load_persistent_settings_from_file();
|
pmem::load_persistent_settings_from_file();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// force apply of selected sdcard speed override at UI startup
|
||||||
|
pmem::set_config_sdcard_high_speed_io(pmem::config_sdcard_high_speed_io(), false);
|
||||||
|
|
||||||
button_back.id = -1; // Special ID used by FocusManager
|
button_back.id = -1; // Special ID used by FocusManager
|
||||||
title.set_style(&Styles::bg_dark_grey);
|
title.set_style(&Styles::bg_dark_grey);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
7
firmware/chibios/os/hal/include/hal.h
Executable file → Normal file
7
firmware/chibios/os/hal/include/hal.h
Executable file → Normal file
@ -205,11 +205,12 @@
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
void halInit(void);
|
void halInit(void);
|
||||||
#if HAL_IMPLEMENTS_COUNTERS
|
#if HAL_IMPLEMENTS_COUNTERS
|
||||||
bool_t halIsCounterWithin(halrtcnt_t start, halrtcnt_t end);
|
bool_t halIsCounterWithin(halrtcnt_t start, halrtcnt_t end);
|
||||||
void halPolledDelay(halrtcnt_t ticks);
|
void halPolledDelay(halrtcnt_t ticks);
|
||||||
#endif /* HAL_IMPLEMENTS_COUNTERS */
|
#endif /* HAL_IMPLEMENTS_COUNTERS */
|
||||||
|
void sdio_cclk_set(const size_t divider_value);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include <ch.h>
|
#include <ch.h>
|
||||||
|
#include <hal.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -143,7 +144,7 @@ struct misc_config_t {
|
|||||||
bool mute_audio : 1;
|
bool mute_audio : 1;
|
||||||
bool disable_speaker : 1;
|
bool disable_speaker : 1;
|
||||||
bool config_disable_external_tcxo : 1;
|
bool config_disable_external_tcxo : 1;
|
||||||
bool UNUSED_3 : 1;
|
bool config_sdcard_high_speed_io : 1;
|
||||||
bool UNUSED_4 : 1;
|
bool UNUSED_4 : 1;
|
||||||
bool UNUSED_5 : 1;
|
bool UNUSED_5 : 1;
|
||||||
bool UNUSED_6 : 1;
|
bool UNUSED_6 : 1;
|
||||||
@ -394,6 +395,8 @@ void defaults() {
|
|||||||
set_recon_update_ranges_when_recon(true);
|
set_recon_update_ranges_when_recon(true);
|
||||||
set_recon_load_hamradios(true);
|
set_recon_load_hamradios(true);
|
||||||
set_recon_match_mode(0);
|
set_recon_match_mode(0);
|
||||||
|
|
||||||
|
set_config_sdcard_high_speed_io(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
@ -581,6 +584,10 @@ bool config_disable_external_tcxo() {
|
|||||||
return data->misc_config.config_disable_external_tcxo;
|
return data->misc_config.config_disable_external_tcxo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool config_sdcard_high_speed_io() {
|
||||||
|
return data->misc_config.config_sdcard_high_speed_io;
|
||||||
|
}
|
||||||
|
|
||||||
bool stealth_mode() {
|
bool stealth_mode() {
|
||||||
return data->ui_config.stealth_mode;
|
return data->ui_config.stealth_mode;
|
||||||
}
|
}
|
||||||
@ -646,6 +653,19 @@ void set_config_disable_external_tcxo(bool v) {
|
|||||||
data->misc_config.config_disable_external_tcxo = v;
|
data->misc_config.config_disable_external_tcxo = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_config_sdcard_high_speed_io(bool v, bool save) {
|
||||||
|
if (v) {
|
||||||
|
/* 200MHz / (2 * 2) = 50MHz */
|
||||||
|
/* TODO: Adjust SCU pin configurations: pull-up/down, slew, glitch filter? */
|
||||||
|
sdio_cclk_set(2);
|
||||||
|
} else {
|
||||||
|
/* 200MHz / (2 * 4) = 25MHz */
|
||||||
|
sdio_cclk_set(4);
|
||||||
|
}
|
||||||
|
if (save)
|
||||||
|
data->misc_config.config_sdcard_high_speed_io = v;
|
||||||
|
}
|
||||||
|
|
||||||
void set_stealth_mode(bool v) {
|
void set_stealth_mode(bool v) {
|
||||||
data->ui_config.stealth_mode = v;
|
data->ui_config.stealth_mode = v;
|
||||||
}
|
}
|
||||||
@ -1015,6 +1035,7 @@ bool debug_dump() {
|
|||||||
pmem_dump_file.write_line("misc_config config_audio_mute: " + to_string_dec_int(config_audio_mute()));
|
pmem_dump_file.write_line("misc_config config_audio_mute: " + to_string_dec_int(config_audio_mute()));
|
||||||
pmem_dump_file.write_line("misc_config config_speaker_disable: " + to_string_dec_int(config_speaker_disable()));
|
pmem_dump_file.write_line("misc_config config_speaker_disable: " + to_string_dec_int(config_speaker_disable()));
|
||||||
pmem_dump_file.write_line("ui_config config_disable_external_tcxo: " + to_string_dec_uint(config_disable_external_tcxo()));
|
pmem_dump_file.write_line("ui_config config_disable_external_tcxo: " + to_string_dec_uint(config_disable_external_tcxo()));
|
||||||
|
pmem_dump_file.write_line("ui_config config_sdcard_high_speed_io: " + to_string_dec_uint(config_sdcard_high_speed_io()));
|
||||||
|
|
||||||
// receiver_model
|
// receiver_model
|
||||||
pmem_dump_file.write_line("\n[Receiver Model]");
|
pmem_dump_file.write_line("\n[Receiver Model]");
|
||||||
|
@ -174,6 +174,7 @@ uint8_t config_cpld();
|
|||||||
void set_config_cpld(uint8_t i);
|
void set_config_cpld(uint8_t i);
|
||||||
|
|
||||||
bool config_disable_external_tcxo();
|
bool config_disable_external_tcxo();
|
||||||
|
bool config_sdcard_high_speed_io();
|
||||||
bool config_splash();
|
bool config_splash();
|
||||||
bool config_converter();
|
bool config_converter();
|
||||||
bool config_updown_converter();
|
bool config_updown_converter();
|
||||||
@ -193,6 +194,7 @@ void set_load_app_settings(bool v);
|
|||||||
void set_save_app_settings(bool v);
|
void set_save_app_settings(bool v);
|
||||||
void set_show_bigger_qr_code(bool v);
|
void set_show_bigger_qr_code(bool v);
|
||||||
void set_config_disable_external_tcxo(bool v);
|
void set_config_disable_external_tcxo(bool v);
|
||||||
|
void set_config_sdcard_high_speed_io(bool v, bool save);
|
||||||
void set_config_splash(bool v);
|
void set_config_splash(bool v);
|
||||||
bool config_converter();
|
bool config_converter();
|
||||||
bool config_updown_converter();
|
bool config_updown_converter();
|
||||||
|
Loading…
Reference in New Issue
Block a user