diff options
| author | Akshay Nair <phenax5@gmail.com> | 2026-02-19 21:47:19 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2026-02-19 21:47:19 +0530 |
| commit | 2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6 (patch) | |
| tree | 9922dc87c0edff3c601e7554223cfaeb7c06cd55 /src/display.h | |
| parent | ffadf36040d103ed62c5e7281bdeb8ceedab7a8d (diff) | |
| download | daft-watch-2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6.tar.gz daft-watch-2c4ba27ff0d110f8c9ef99e3493a4a9b2dddbcb6.zip | |
Optimize display write
Diffstat (limited to 'src/display.h')
| -rw-r--r-- | src/display.h | 27 |
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); |
