2.8. ds18b20 — One-wire temperature sensor

Source code: src/drivers/ds18b20.h, src/drivers/ds18b20.c

Test code: tst/drivers/ds18b20/main.c


Functions

int ds18b20_module_init(void)

Initialize the DS18B20 driver module. This function must be called before calling any other function in this module.

The module will only be initialized once even if this function is called multiple times.

Return
zero(0) or negative error code.

int ds18b20_init(struct ds18b20_driver_t *self_p, struct owi_driver_t *owi_p)

Initialize given driver object.

Return
zero(0) or negative error code.
Parameters
  • self_p -

    Driver object to be initialized.

  • owi_p -

    One-Wire (OWI) driver.

int ds18b20_convert(struct ds18b20_driver_t *self_p)

Start temperature convertion on all sensors.

Return
zero(0) or negative error code.
Parameters
  • self_p -

    Driver object to be initialized.

int ds18b20_get_temperature(struct ds18b20_driver_t *self_p, uint8_t *id_p, int *temp_p)

Get the temperature for given device identity.

Return
zero(0) or negative error code.
Parameters
  • self_p -

    Driver object to be initialized.

  • id_p -

    Device identity.

  • temp_p -

    Measured temperature in Q4.4 to Q8.4 depending on resolution.

char *ds18b20_get_temperature_str(struct ds18b20_driver_t *self_p, uint8_t *id_p, char *buf_p)

Get temperature for given device identity returned formatted as a string.

Return
Buffer or NULL.
Parameters
  • self_p -

    Driver object to be initialized.

  • id_p -

    Device identity.

  • buf_p -

    Buffer.

struct ds18b20_driver_t

Public Members

struct owi_driver_t *owi_p
struct ds18b20_driver_t *next_p