2.8. ds18b20 — One-wire temperature sensor

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

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


Defines

DS18B20_FAMILY_CODE

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. The driver object will communicate with all DS18B20 devices on given OWI bus.

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, const 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, const uint8_t *id_p, char *temp_p)

Get temperature for given device identity formatted as a string.

Return
temp_p on success, NULL otherwise.
Parameters
  • self_p: Driver object to be initialized.
  • id_p: Device identity.
  • temp_p: Measured formatted temperature.

struct ds18b20_driver_t

Public Members

struct owi_driver_t *owi_p
struct ds18b20_driver_t *next_p