main/task_ds18b20.h

Mon, 21 Jun 2021 19:04:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 21 Jun 2021 19:04:10 +0200
changeset 102
96e30a3a3980
parent 1
ad2c8b13eb88
permissions
-rw-r--r--

Finished experimental code to drive the German HendiControl board. Added BoilPower and RampPower buttons during the while boil process. RampPower (going to boil power) is now adjustable. Added PWM driver code to the driver task.


/**
 * @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.
 *
 * Using a compile setting with make menuconfig it is possible to compile
 * a simulator instead of real hardware sensors. The simulator includes
 * fake kettles so that the temperature actually changes with the 
 * activation of the kettle Solid State Relays. Only usefull for developers.
 */

#ifndef	_TASK_DS18B20_H
#define	_TASK_DS18B20_H

/*
 * Error codes in this task
 */
#define	DS18B20_ERR_NONE		0			///< No errors
#define DS18B20_ERR_NOSENSOR		1			///< No sensor detected
#define	DS18B20_ERR_TOOMANY		2			///< Too many sensors
#define	DS18B20_ERR_CRC			3			///< CRC read error
#define	DS18B20_ERR_READ		4			///< Generic read error


/**
 * @brief Structure containing the variables for the DS18B20 task.
 */
typedef struct {
    bool   mlt_valid;			///< MLT sensor valid reading.
    double mlt_temperature;		///< Current MLT temperature.
    int    mlt_error;			///< MLT error number.
    bool   hlt_valid;			///< HLT sensor valid reading.
    double hlt_temperature;		///< Current HLT temperature.
    int    hlt_error;			///< HLT error number.
} DS18B20_State;


/**
 * @brief The FreeRTOS task to update the DS18B20 temperature sensors.
 */
void task_ds18b20(void *);


#endif

mercurial