Minor fixes to settings faces to work with the new rtc mode
This commit is contained in:
@@ -106,7 +106,7 @@ static void finetune_adjust_subseconds(int delta) {
|
|||||||
watch_rtc_enable(false);
|
watch_rtc_enable(false);
|
||||||
delay_ms(delta);
|
delay_ms(delta);
|
||||||
if (delta > 500) {
|
if (delta > 500) {
|
||||||
watch_date_time_t date_time = watch_rtc_get_date_time();
|
watch_date_time_t date_time = movement_get_utc_date_time();
|
||||||
date_time.unit.second = (date_time.unit.second + 1) % 60;
|
date_time.unit.second = (date_time.unit.second + 1) % 60;
|
||||||
if (date_time.unit.second == 0) { // Overflow
|
if (date_time.unit.second == 0) { // Overflow
|
||||||
date_time.unit.minute = (date_time.unit.minute + 1) % 60;
|
date_time.unit.minute = (date_time.unit.minute + 1) % 60;
|
||||||
@@ -116,7 +116,7 @@ static void finetune_adjust_subseconds(int delta) {
|
|||||||
date_time.unit.day++;
|
date_time.unit.day++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
watch_rtc_set_date_time(date_time);
|
movement_set_utc_date_time(date_time);
|
||||||
}
|
}
|
||||||
watch_rtc_enable(true);
|
watch_rtc_enable(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,10 +108,6 @@ bool set_time_face_loop(movement_event_t event, void *context) {
|
|||||||
case EVENT_ALARM_LONG_UP:
|
case EVENT_ALARM_LONG_UP:
|
||||||
_abort_quick_ticks();
|
_abort_quick_ticks();
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
_abort_quick_ticks();
|
|
||||||
movement_move_to_next_face();
|
|
||||||
return false;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
current_page = (current_page + 1) % SET_TIME_FACE_NUM_SETTINGS;
|
current_page = (current_page + 1) % SET_TIME_FACE_NUM_SETTINGS;
|
||||||
*((uint8_t *)context) = current_page;
|
*((uint8_t *)context) = current_page;
|
||||||
@@ -187,6 +183,6 @@ bool set_time_face_loop(movement_event_t event, void *context) {
|
|||||||
|
|
||||||
void set_time_face_resign(void *context) {
|
void set_time_face_resign(void *context) {
|
||||||
(void) context;
|
(void) context;
|
||||||
watch_set_led_off();
|
|
||||||
movement_store_settings();
|
movement_store_settings();
|
||||||
|
movement_request_tick_frequency(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ bool settings_face_loop(movement_event_t event, void *context) {
|
|||||||
case EVENT_MODE_BUTTON_UP:
|
case EVENT_MODE_BUTTON_UP:
|
||||||
movement_force_led_off();
|
movement_force_led_off();
|
||||||
movement_move_to_next_face();
|
movement_move_to_next_face();
|
||||||
return false;
|
return true;
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
state->settings_screens[state->current_page].advance();
|
state->settings_screens[state->current_page].advance();
|
||||||
break;
|
break;
|
||||||
@@ -339,7 +339,7 @@ bool settings_face_loop(movement_event_t event, void *context) {
|
|||||||
movement_force_led_on(color.red | color.red << 4,
|
movement_force_led_on(color.red | color.red << 4,
|
||||||
color.green | color.green << 4,
|
color.green | color.green << 4,
|
||||||
color.blue | color.blue << 4);
|
color.blue | color.blue << 4);
|
||||||
return false;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
movement_force_led_off();
|
movement_force_led_off();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ void sleep(const uint8_t mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void watch_register_extwake_callback(uint8_t pin, watch_cb_t callback, bool level) {
|
void watch_register_extwake_callback(uint8_t pin, watch_cb_t callback, bool level) {
|
||||||
uint32_t config = RTC->MODE2.TAMPCTRL.reg;
|
uint32_t config = RTC->MODE0.TAMPCTRL.reg;
|
||||||
|
|
||||||
if (pin == HAL_GPIO_BTN_ALARM_pin()) {
|
if (pin == HAL_GPIO_BTN_ALARM_pin()) {
|
||||||
HAL_GPIO_BTN_ALARM_in();
|
HAL_GPIO_BTN_ALARM_in();
|
||||||
@@ -71,22 +71,22 @@ void watch_register_extwake_callback(uint8_t pin, watch_cb_t callback, bool leve
|
|||||||
}
|
}
|
||||||
|
|
||||||
// disable the RTC
|
// disable the RTC
|
||||||
RTC->MODE2.CTRLA.bit.ENABLE = 0;
|
RTC->MODE0.CTRLA.bit.ENABLE = 0;
|
||||||
while (RTC->MODE2.SYNCBUSY.bit.ENABLE); // wait for RTC to be disabled
|
while (RTC->MODE0.SYNCBUSY.bit.ENABLE); // wait for RTC to be disabled
|
||||||
|
|
||||||
// update the configuration
|
// update the configuration
|
||||||
RTC->MODE2.TAMPCTRL.reg = config;
|
RTC->MODE0.TAMPCTRL.reg = config;
|
||||||
|
|
||||||
// re-enable the RTC
|
// re-enable the RTC
|
||||||
RTC->MODE2.CTRLA.bit.ENABLE = 1;
|
RTC->MODE0.CTRLA.bit.ENABLE = 1;
|
||||||
|
|
||||||
NVIC_ClearPendingIRQ(RTC_IRQn);
|
NVIC_ClearPendingIRQ(RTC_IRQn);
|
||||||
NVIC_EnableIRQ(RTC_IRQn);
|
NVIC_EnableIRQ(RTC_IRQn);
|
||||||
RTC->MODE2.INTENSET.reg = RTC_MODE2_INTENSET_TAMPER;
|
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_TAMPER;
|
||||||
}
|
}
|
||||||
|
|
||||||
void watch_disable_extwake_interrupt(uint8_t pin) {
|
void watch_disable_extwake_interrupt(uint8_t pin) {
|
||||||
uint32_t config = RTC->MODE2.TAMPCTRL.reg;
|
uint32_t config = RTC->MODE0.TAMPCTRL.reg;
|
||||||
|
|
||||||
if (pin == HAL_GPIO_BTN_ALARM_pin()) {
|
if (pin == HAL_GPIO_BTN_ALARM_pin()) {
|
||||||
btn_alarm_callback = NULL;
|
btn_alarm_callback = NULL;
|
||||||
@@ -101,14 +101,14 @@ void watch_disable_extwake_interrupt(uint8_t pin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// disable the RTC
|
// disable the RTC
|
||||||
RTC->MODE2.CTRLA.bit.ENABLE = 0;
|
RTC->MODE0.CTRLA.bit.ENABLE = 0;
|
||||||
while (RTC->MODE2.SYNCBUSY.bit.ENABLE); // wait for RTC to be disabled
|
while (RTC->MODE0.SYNCBUSY.bit.ENABLE); // wait for RTC to be disabled
|
||||||
|
|
||||||
// update the configuration
|
// update the configuration
|
||||||
RTC->MODE2.TAMPCTRL.reg = config;
|
RTC->MODE0.TAMPCTRL.reg = config;
|
||||||
|
|
||||||
// re-enable the RTC
|
// re-enable the RTC
|
||||||
RTC->MODE2.CTRLA.bit.ENABLE = 1;
|
RTC->MODE0.CTRLA.bit.ENABLE = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void watch_store_backup_data(uint32_t data, uint8_t reg) {
|
void watch_store_backup_data(uint32_t data, uint8_t reg) {
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ watch_cb_t a4_callback;
|
|||||||
static void _watch_increase_counter(void *userData);
|
static void _watch_increase_counter(void *userData);
|
||||||
static void _watch_process_periodic_callbacks(void);
|
static void _watch_process_periodic_callbacks(void);
|
||||||
static void _watch_process_comp_callbacks(void);
|
static void _watch_process_comp_callbacks(void);
|
||||||
|
static void _watch_rtc_schedule_next_comp(void);
|
||||||
|
|
||||||
bool _watch_rtc_is_enabled(void) {
|
bool _watch_rtc_is_enabled(void) {
|
||||||
return counter_interval;
|
return counter_interval;
|
||||||
@@ -283,7 +284,7 @@ void watch_rtc_disable_comp_callback(uint8_t index) {
|
|||||||
_watch_rtc_schedule_next_comp();
|
_watch_rtc_schedule_next_comp();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _watch_rtc_schedule_next_comp(void) {
|
static void _watch_rtc_schedule_next_comp(void) {
|
||||||
scheduled_comp_counter = 0;
|
scheduled_comp_counter = 0;
|
||||||
|
|
||||||
// The soonest we can schedule is the next tick
|
// The soonest we can schedule is the next tick
|
||||||
|
|||||||
Reference in New Issue
Block a user