struct OverFlowCounter { o_flow_count: u16 } // set this up as an interupt handler fn interupt_handler(counter: &mut OverFlowCounter) { counter.o_flow_count += 1 } impl TimeCount for OverFlowCounter { type RawData = u64; type TickMeasure = FizzBuzz; type Error; fn try_now_raw(&self) -> Result { let read: u16 = todo!("actual reading of register"); u16::MAX as u64 * self.o_flow_count + read }