aboutsummaryrefslogtreecommitdiff
path: root/src/display.h
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2026-02-19 21:47:19 +0530
committerAkshay Nair <phenax5@gmail.com>2026-02-19 21:47:19 +0530
commit2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6 (patch)
tree9922dc87c0edff3c601e7554223cfaeb7c06cd55 /src/display.h
parentffadf36040d103ed62c5e7281bdeb8ceedab7a8d (diff)
downloaddaft-watch-2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6.tar.gz
daft-watch-2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6.zip
Optimize display write
Diffstat (limited to 'src/display.h')
-rw-r--r--src/display.h27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/display.h b/src/display.h
index c410731..f01ee73 100644
--- a/src/display.h
+++ b/src/display.h
@@ -2,6 +2,8 @@
#define _LOADED_DISPLAY
#include <stdint.h>
+#include "rtc.h"
+
// "_gfedcba"
// Reversed because a-g is mapped to pa0-6. (pa7 is decimal)
// Complemented because display is common anode
@@ -10,33 +12,12 @@ static const uint32_t digit_masks[] = {
0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000,
};
+// Current digit position
volatile extern uint8_t current_digit;
void display_setup(void);
-static inline uint32_t get_digit_mask(uint8_t digit) {
- return digit_masks[digit % 10];
-}
-
-static inline uint8_t get_digit(uint16_t hour, uint16_t minute,
- uint8_t digit_index) {
- // TODO: use hour
- // uint8_t hour_digit1 = hour % 10;
- // uint8_t hour_digit2 = (hour / 10) % 10;
- switch (digit_index) {
- case 0:
- return minute % 10;
- case 1:
- return (minute / 10) % 10;
- case 2:
- return (minute % 10) + 1;
- case 3:
- return ((minute / 10) % 10) + 1;
- }
- return 0;
-}
-
-void write_time(uint16_t hour, uint16_t minute, uint8_t digit_index);
+void write_time(uint8_t digit_index);
void display_render(void);