int inv_icm42600_temp_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask)
{ struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
s16 temp; int ret;
if (chan->type != IIO_TEMP) return -EINVAL;
switch (mask) { case IIO_CHAN_INFO_RAW: if (!iio_device_claim_direct(indio_dev)) return -EBUSY;
ret = inv_icm42600_temp_read(st, &temp);
iio_device_release_direct(indio_dev); if (ret) return ret;
*val = temp; return IIO_VAL_INT; /* *T°C=(temp/132.48)+25 *Tm°C=1000*((temp/132.48)+25) *Tm°C=7.548309*temp+25000 *Tm°C=(temp+3312)*7.548309 *scale:100000/13248~=7.548309 *offset:3312
*/ case IIO_CHAN_INFO_SCALE:
*val = 7;
*val2 = 548309; return IIO_VAL_INT_PLUS_MICRO; case IIO_CHAN_INFO_OFFSET:
*val = 3312; return IIO_VAL_INT; default: return -EINVAL;
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-10-02)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.