Added options for enabling CLKOUT.

- CLKOUT can be enabled in Radio settings and status bar.
- Fixed a typo(I believe) in ui_navigation.
This commit is contained in:
dqs105 2020-09-16 19:27:56 +08:00
parent 55783a60f5
commit b15b781039
8 changed files with 80 additions and 9 deletions

View file

@ -63,6 +63,10 @@ using modem_repeat_range_t = range_t<int32_t>;
constexpr modem_repeat_range_t modem_repeat_range { 1, 99 };
constexpr int32_t modem_repeat_reset_value { 5 };
using clkout_config_range_t = range_t<uint32_t>;
constexpr clkout_config_range_t clkout_config_range { 0, 1 };
constexpr uint32_t clkout_config_reset_value { 0 };
/* struct must pack the same way on M4 and M0 cores. */
struct data_t {
int64_t tuned_frequency;
@ -91,6 +95,8 @@ struct data_t {
uint32_t pocsag_ignore_address;
int32_t tone_mix;
uint32_t clkout_config; // TODO: Add custom frequency output?
};
static_assert(sizeof(data_t) <= backup_ram.size(), "Persistent memory structure too large for VBAT-maintained region");
@ -287,5 +293,14 @@ void set_pocsag_ignore_address(uint32_t address) {
data->pocsag_ignore_address = address;
}
bool clkout_enabled() {
clkout_config_range.reset_if_outside(data->clkout_config, clkout_config_reset_value);
return (bool)(data->clkout_config & 1);
}
void set_clkout_enabled(bool enable) {
data->clkout_config = (uint32_t)enable;
}
} /* namespace persistent_memory */
} /* namespace portapack */