diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs index ce4c2b6..a79107c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,9 +25,16 @@ static mut RTC: Option<ds3231::DS3231> = None; static mut DIGITS: [u8; 6] = [0; 6]; static mut TIME: Clock = Clock{sec: 0, min: 0, hr: 0, reset: 0}; -fn update_clock() { +fn digits2bcds(digs: &[u8]) -> u32 { + let mut res: u32 = 0; + for d in digs.iter().rev() { + res = (res << 4) | (*d as u32); + } + res +} + +fn digits_countup() { unsafe { - /* SR.as_mut().unwrap().output_bits(digits2bcds(&DIGITS[..])); let mut i = 0; let mut carry = 1; @@ -36,7 +43,11 @@ fn update_clock() { carry = if DIGITS[i] > 9 {DIGITS[i] = 0; 1} else {0}; i += 1; } - */ + } +} + +fn update_clock() { + unsafe { if !TIME.tick() { let ds3231::Date{second: sec, minute: min, @@ -56,6 +67,7 @@ fn update_clock() { } fn systick_handler() { + // digits_countup(); update_clock(); } @@ -87,14 +99,6 @@ impl<'a> ShiftRegister<'a> { } } -fn digits2bcds(digs: &[u8]) -> u32 { - let mut res: u32 = 0; - for d in digs.iter().rev() { - res = (res << 4) | (*d as u32); - } - res -} - impl Clock { fn tick(&mut self) -> bool { if self.reset == 0 { @@ -172,7 +176,7 @@ fn main() { month: 9, year: 17, am: false, - am_enable: false}); + am_enabled: false}); */ } |