summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Castillo <joeycastillo@utexas.edu>2021-12-03 11:30:36 -0500
committerJoey Castillo <joeycastillo@utexas.edu>2021-12-03 11:30:36 -0500
commit8e2bf8591a70742addfd169832f03aa76210961c (patch)
tree64ab430603bc89a3c2b59d0c94431f2d7045db77
parentb8c824419fc565fa08fad1cf6ad7cc9f5c395599 (diff)
downloadSensor-Watch-8e2bf8591a70742addfd169832f03aa76210961c.tar.gz
Sensor-Watch-8e2bf8591a70742addfd169832f03aa76210961c.tar.bz2
Sensor-Watch-8e2bf8591a70742addfd169832f03aa76210961c.zip
movement: allow watch faces to request zero ticks
-rw-r--r--movement/movement.c2
-rw-r--r--movement/movement_config.h1
-rw-r--r--movement/watch_faces/demos/character_set_face.c4
3 files changed, 4 insertions, 3 deletions
diff --git a/movement/movement.c b/movement/movement.c
index b41700b0..f627dbf5 100644
--- a/movement/movement.c
+++ b/movement/movement.c
@@ -104,7 +104,7 @@ void movement_request_tick_frequency(uint8_t freq) {
RTC->MODE2.INTENCLR.reg = 0xFE; // disable all callbacks except the 128 Hz one
movement_state.subsecond = 0;
movement_state.tick_frequency = freq;
- watch_rtc_register_periodic_callback(cb_tick, freq);
+ if (freq) watch_rtc_register_periodic_callback(cb_tick, freq);
}
void movement_illuminate_led() {
diff --git a/movement/movement_config.h b/movement/movement_config.h
index 2ef43ef0..b6b3c350 100644
--- a/movement/movement_config.h
+++ b/movement/movement_config.h
@@ -18,6 +18,7 @@
const watch_face_t watch_faces[] = {
simple_clock_face,
+ character_set_face,
preferences_face,
set_time_face,
};
diff --git a/movement/watch_faces/demos/character_set_face.c b/movement/watch_faces/demos/character_set_face.c
index 7daea5a9..eabb133f 100644
--- a/movement/watch_faces/demos/character_set_face.c
+++ b/movement/watch_faces/demos/character_set_face.c
@@ -12,6 +12,7 @@ void character_set_face_activate(movement_settings_t *settings, void *context) {
(void) settings;
char *c = (char *)context;
*c = '@';
+ movement_request_tick_frequency(0);
}
bool character_set_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
@@ -33,8 +34,6 @@ bool character_set_face_loop(movement_event_t event, movement_settings_t *settin
sprintf(buf, "%c%c%c%c%c%c%c%c%c%c", *c, *c, *c, *c, *c, *c, *c, *c, *c, *c);
watch_display_string(buf, 0);
break;
- case EVENT_TICK:
- break;
case EVENT_TIMEOUT:
movement_move_to_face(0);
break;
@@ -48,4 +47,5 @@ bool character_set_face_loop(movement_event_t event, movement_settings_t *settin
void character_set_face_resign(movement_settings_t *settings, void *context) {
(void) settings;
(void) context;
+ movement_request_tick_frequency(1);
}