diff --git a/firmware/src/ad7172.rs b/firmware/src/ad7172.rs index 4f36e3a..aacf212 100644 --- a/firmware/src/ad7172.rs +++ b/firmware/src/ad7172.rs @@ -34,6 +34,9 @@ pub enum Register { Gain3 = 0x3B, } +/// AD7172-2 implementation +/// +/// [Manual](https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf) pub struct Adc, NSS: OutputPin> { spi: SPI, nss: NSS, @@ -56,16 +59,15 @@ impl, NSS: OutputPin> Adc { /// Returns the channel the data is from pub fn data_ready(&mut self) -> Option { let mut buf = [0u8; 2]; - match self.read_reg(Register::Status, &mut buf) { - Err(_) => None, - Ok(()) => { + self.read_reg(Register::Status, &mut buf) + .ok() + .and_then(|()| { if buf[1] & 0x80 == 0 { None } else { Some(buf[1] & 0x3) } - } - } + }) } /// Get data