Tue, 26 Sep 2023 10:39:56 +0200
Partition layout the same as esp-idf 5.1
/** * @file task_ds18b20.h * @brief The FreeRTOS task to query the DS18B20 sensors on one or two * one-wire busses. Each bus must have only one sensor. That way * we don't need to care about the DS18B20 internal ROM address. * The task will update the DS18B20_State structure. */ #ifndef _TASK_DS18B20_H #define _TASK_DS18B20_H /* * Error codes in this task */ #define DS18B20_ERR_NONE 0 ///< No errors #define DS18B20_ERR_CRC 1 ///< CRC read error #define DS18B20_ERR_READ 2 ///< Generic read error #define DS18B20_MAX 4 ///< Maximum number of DS18B20 sensors. /** * @brief Structure for a temperature sensor. */ typedef struct strTempsensor { double temperature; ///< Current temperature. char rom_code[17]; ///< ROM code of this device. int error; ///< Error number. } tempsensor_t; /** * @brief Structure containing the variables for the DS18B20 task. */ typedef struct { bool valid; ///< Sensor valid reading. int num_sensors; ///< Number of sensors tempsensor_t sensor[DS18B20_MAX]; ///< Temperature sensors } DS18B20_State; /** * @brief Request a new measurement */ void request_ds18b20(void); /** * @brief Measurement ready state * @return Returns true if the temperature measurements are ready */ bool ready_ds18b20(void); /** * @brief The FreeRTOS task to update the DS18B20 temperature sensors on request. * @param pvParameters Parameters for the task. */ void task_ds18b20(void *pvParameters); #endif