diff --git a/firmware/src/board/systick.rs b/firmware/src/board/systick.rs index df04fdb..7e688e3 100644 --- a/firmware/src/board/systick.rs +++ b/firmware/src/board/systick.rs @@ -7,7 +7,7 @@ use bare_metal::CriticalSection; static mut TIME: Mutex> = Mutex::new(RefCell::new(0)); /// In HZ const RATE: u32 = 10; -/// Period between to interrupts in ns +/// Period between two interrupts in ns const INTERVAL: u64 = 1_000_000 / RATE as u64; fn syst() -> &'static mut SYST { diff --git a/firmware/src/main.rs b/firmware/src/main.rs index 66fa4fd..24d2e23 100644 --- a/firmware/src/main.rs +++ b/firmware/src/main.rs @@ -177,6 +177,7 @@ fn main() -> ! { tcp_handle7, ]; + let mut read_times = [0, 0]; let mut data = None; // if a socket has sent the latest data let mut socket_pending = [false; 8]; @@ -186,6 +187,8 @@ fn main() -> ! { channel.map(|channel| adc.read_data().map(|new_data| { let now = get_time(); + read_times[0] = read_times[1]; + read_times[1] = now; data = Some((now, Ok((channel, new_data)))); for p in socket_pending.iter_mut() { *p = true; @@ -209,7 +212,8 @@ fn main() -> ! { if socket.may_send() && *pending { match &data { Some((time, Ok((channel, input)))) => { - let _ = writeln!(socket, "t={} channel={} input={}\r", time, channel, input); + let interval = read_times[1] - read_times[0]; + let _ = writeln!(socket, "t={}-{} channel={} input={}\r", time, interval, channel, input); } Some((time, Err(ad7172::AdcError::ChecksumMismatch(Some(expected), Some(input))))) => { let _ = writeln!(socket, "t={} checksum_expected={:02X} checksum_input={:02X}\r", time, expected, input);