49 #if (LPS22HB_USE_I2C) || defined(__DOXYGEN__)
64 uint8_t reg, uint8_t* rxbuf,
size_t n) {
66 return i2cMasterTransmitTimeout(i2cp, sad, ®, 1, rxbuf, n,
84 #define lps22hbI2CWriteRegister(i2cp, sad, txbuf, n) \
85 i2cMasterTransmitTimeout(i2cp, sad, txbuf, n + 1, NULL, 0, \
123 osalDbgCheck((ip != NULL) && (axes != NULL));
129 "baro_read_raw(), invalid state");
131 osalDbgAssert((devp->config->i2cp->state == I2C_READY),
132 "baro_read_raw(), channel not ready");
134 #if LPS22HB_SHARED_I2C
135 i2cAcquireBus(devp->config->i2cp);
136 i2cStart(devp->config->i2cp,
137 devp->config->i2ccfg);
141 LPS22HB_AD_PRESS_OUT_XL, buff, 3);
143 #if LPS22HB_SHARED_I2C
144 i2cReleaseBus(devp->config->i2cp);
148 *axes = buff[0] + (buff[1] << 8) + (buff[2] << 16);
175 osalDbgCheck((ip != NULL) && (axes != NULL));
181 "baro_read_cooked(), invalid state");
185 *axes = (raw * devp->barosensitivity) - devp->barobias;
209 osalDbgCheck((ip != NULL) && (bp != NULL));
215 "baro_set_bias(), invalid state");
217 devp->barobias = *bp;
235 osalDbgCheck(ip != NULL);
241 "baro_reset_bias(), invalid state");
243 devp->barobias = LPS22HB_BARO_SENS;
263 osalDbgCheck((ip != NULL) && (sp != NULL));
269 "baro_set_sensitivity(), invalid state");
271 devp->barosensitivity = *sp;
288 osalDbgCheck(ip != NULL);
294 "baro_reset_sensitivity(), invalid state");
296 devp->barosensitivity = LPS22HB_BARO_SENS;
335 osalDbgCheck((ip != NULL) && (axes != NULL));
341 "thermo_read_raw(), invalid state");
343 osalDbgAssert((devp->config->i2cp->state == I2C_READY),
344 "thermo_read_raw(), channel not ready");
346 #if LPS22HB_SHARED_I2C
347 i2cAcquireBus(devp->config->i2cp);
348 i2cStart(devp->config->i2cp,
349 devp->config->i2ccfg);
353 LPS22HB_AD_TEMP_OUT_L, buff, 2);
355 #if LPS22HB_SHARED_I2C
356 i2cReleaseBus(devp->config->i2cp);
360 tmp = buff[0] + (buff[1] << 8);
361 *axes = (int32_t)tmp;
388 osalDbgCheck((ip != NULL) && (axis != NULL));
394 "thermo_read_cooked(), invalid state");
398 *axis = (raw * devp->thermosensitivity) - devp->thermobias;
419 osalDbgCheck((ip != NULL) && (bp != NULL));
425 "thermo_set_bias(), invalid state");
427 devp->thermobias = *bp;
446 osalDbgCheck(ip != NULL);
452 "thermo_reset_bias(), invalid state");
454 devp->thermobias = LPS22HB_THERMO_BIAS;
475 osalDbgCheck((ip != NULL) && (sp != NULL));
481 "thermo_set_sensitivity(), invalid state");
483 devp->thermosensitivity = *sp;
501 osalDbgCheck(ip != NULL);
507 "thermo_reset_sensitivity(), invalid state");
509 devp->thermosensitivity = LPS22HB_THERMO_SENS;
545 devp->
vmt = &vmt_device;
567 osalDbgCheck((devp != NULL) && (config != NULL));
570 "lps22hbStart(), invalid state");
572 devp->config = config;
577 cr[0] = LPS22HB_AD_CTRL_REG2;
578 cr[1] = LPS22HB_CTRL_REG2_IF_ADD_INC;
580 #if LPS22HB_SHARED_I2C
581 i2cAcquireBus(devp->config->i2cp);
584 i2cStart(devp->config->i2cp, devp->config->i2ccfg);
588 #if LPS22HB_SHARED_I2C
589 i2cReleaseBus((devp)->config->
i2cp);
594 cr[0] = LPS22HB_AD_CTRL_REG1;
595 cr[1] = devp->config->outputdatarate;
596 #if LPS22HB_USE_ADVANCED || defined(__DOXYGEN__)
597 cr[1] |= devp->config->blockdataupdate;
598 cr[1] |= devp->config->lowpass_filter;
602 #if LPS22HB_SHARED_I2C
603 i2cAcquireBus((devp)->config->
i2cp);
604 i2cStart((devp)->config->
i2cp,
605 (devp)->config->i2ccfg);
610 #if LPS22HB_SHARED_I2C
611 i2cReleaseBus((devp)->config->
i2cp);
614 if(devp->config->barosensitivity == NULL) {
615 devp->barosensitivity = LPS22HB_BARO_SENS;
619 devp->barosensitivity = *(devp->config->barosensitivity);
622 if(devp->config->barobias == NULL) {
623 devp->barobias = LPS22HB_BARO_BIAS;
627 devp->barobias = *(devp->config->barobias);
630 if(devp->config->thermosensitivity == NULL) {
631 devp->thermosensitivity = LPS22HB_THERMO_SENS;
635 devp->thermosensitivity = *(devp->config->thermosensitivity);
638 if(devp->config->thermobias == NULL) {
639 devp->thermobias = LPS22HB_THERMO_BIAS;
643 devp->thermobias = *(devp->config->thermobias);
647 osalThreadSleepMilliseconds(5);
662 osalDbgCheck(devp != NULL);
665 "lps22hbStop(), invalid state");
668 #if LPS22HB_SHARED_I2C
669 i2cAcquireBus((devp)->config->i2cp);
670 i2cStart((devp)->config->i2cp,
671 (devp)->config->i2ccfg);
674 cr[0] = LPS22HB_AD_CTRL_REG1;
679 i2cStop((devp)->config->i2cp);
680 #if LPS22HB_SHARED_I2C
681 i2cReleaseBus((devp)->config->i2cp);