forked from M-Labs/thermostat
channel_state: recognize unplugged thermistor
This commit is contained in:
parent
f690599f9e
commit
20059aff5c
@ -19,6 +19,8 @@ pub const SPI_MODE: spi::Mode = spi::Mode {
|
|||||||
/// 2 MHz
|
/// 2 MHz
|
||||||
pub const SPI_CLOCK: MegaHertz = MegaHertz(2);
|
pub const SPI_CLOCK: MegaHertz = MegaHertz(2);
|
||||||
|
|
||||||
|
pub const MAX_VALUE: u32 = 0xFF_FFFF;
|
||||||
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
|
@ -63,7 +63,13 @@ impl ChannelState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_adc(&self) -> Option<ElectricPotential> {
|
pub fn get_adc(&self) -> Option<ElectricPotential> {
|
||||||
Some(self.adc_calibration.convert_data(self.adc_data?))
|
let data = self.adc_data?;
|
||||||
|
if data == ad7172::MAX_VALUE {
|
||||||
|
// this means there is no thermistor plugged into the ADC.
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(self.adc_calibration.convert_data(data))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get `SENS[01]` input resistance
|
/// Get `SENS[01]` input resistance
|
||||||
|
@ -182,10 +182,10 @@ fn main() -> ! {
|
|||||||
|
|
||||||
let state = channels.channel_state(channel);
|
let state = channels.channel_state(channel);
|
||||||
let _ = writeln!(
|
let _ = writeln!(
|
||||||
socket, "channel {}: t={:.0} adc{}={:.3} adc_r={:.3} vref={:.3} dac_feedback={:.3} itec={:.3} tec={:.3} tec_u_meas={:.3} r={:.3}",
|
socket, "channel {}: t={:.0} adc{}={:.3} adc_r={:?} vref={:.3} dac_feedback={:.3} itec={:.3} tec={:.3} tec_u_meas={:.3} r={:.3}",
|
||||||
channel, state.adc_time,
|
channel, state.adc_time,
|
||||||
channel, adc_input.into_format_args(volt, Abbreviation),
|
channel, adc_input.into_format_args(volt, Abbreviation),
|
||||||
state.get_sens().unwrap().into_format_args(ohm, Abbreviation),
|
state.get_sens().map(|sens| sens.into_format_args(ohm, Abbreviation)),
|
||||||
vref.into_format_args(volt, Abbreviation), dac_feedback.into_format_args(volt, Abbreviation),
|
vref.into_format_args(volt, Abbreviation), dac_feedback.into_format_args(volt, Abbreviation),
|
||||||
itec.into_format_args(volt, Abbreviation), tec_i.into_format_args(ampere, Abbreviation),
|
itec.into_format_args(volt, Abbreviation), tec_i.into_format_args(ampere, Abbreviation),
|
||||||
tec_u_meas.into_format_args(volt, Abbreviation),
|
tec_u_meas.into_format_args(volt, Abbreviation),
|
||||||
|
Loading…
Reference in New Issue
Block a user