Files
MSE-SoftwEng/pico-sensor/McuLib/src/McuDS18B20.h
2025-05-06 13:07:01 +00:00

326 lines
13 KiB
C
Raw Blame History

/* ###################################################################
** This component module is generated by Processor Expert. Do not modify it.
** Filename : McuDS18B20.h
** CDE edition : Community
** Project : FRDM-K64F_Generator
** Processor : MK64FN1M0VLL12
** Component : DS18B20
** Version : Component 01.020, Driver 01.00, CPU db: 3.00.000
** Compiler : GNU C Compiler
** Date/Time : 2020-08-14, 06:24, # CodeGen: 679
** Abstract :
**
This is a component for the Maxim DS18B20 1-Wire temperature sensor.
** Settings :
** Component Name : McuDS18B20
** Temperature Reading : Auto
** Connection mode : One slave
** One Wire : McuOneWire
** SDK : McuLib
** Shell : Enabled
** Shell : McuShell
** Utility : McuUtility
** Contents :
** ReadRom - uint8_t McuDS18B20_ReadRom(uint8_t sensor_index);
** GetRomCode - uint8_t McuDS18B20_GetRomCode(uint8_t sensor_index, uint8_t **romCodePtr);
** isBusy - bool McuDS18B20_isBusy(void);
** StartConversion - uint8_t McuDS18B20_StartConversion(uint8_t sensor_index);
** ReadTemperature - uint8_t McuDS18B20_ReadTemperature(uint8_t sensor_index);
** GetTemperatureRaw - uint8_t McuDS18B20_GetTemperatureRaw(uint16_t sensor_index, uint32_t *raw);
** GetTemperatureFloat - uint8_t McuDS18B20_GetTemperatureFloat(uint8_t sensor_index, float...
** ReadResolution - uint8_t McuDS18B20_ReadResolution(uint8_t sensor_index);
** SetResolution - uint8_t McuDS18B20_SetResolution(uint8_t sensor_index, DS18B20_ResolutionBits...
** SearchAndAssignROMCodes - uint8_t McuDS18B20_SearchAndAssignROMCodes(void);
** ParseCommand - uint8_t McuDS18B20_ParseCommand(const unsigned char* cmd, bool *handled,...
** Init - void McuDS18B20_Init(void);
** Deinit - void McuDS18B20_Deinit(void);
**
** * Copyright (c) Original implementation: Omar Isa<73> Pinales Ayala, 2014, all rights reserved.
** * Updated and maintained by Erich Styger, 2014-2020
** * Web: https://mcuoneclipse.com
** * SourceForge: https://sourceforge.net/projects/mcuoneclipse
** * Git: https://github.com/ErichStyger/McuOnEclipse_PEx
** * All rights reserved.
** *
** * Redistribution and use in source and binary forms, with or without modification,
** * are permitted provided that the following conditions are met:
** *
** * - Redistributions of source code must retain the above copyright notice, this list
** * of conditions and the following disclaimer.
** *
** * - Redistributions in binary form must reproduce the above copyright notice, this
** * list of conditions and the following disclaimer in the documentation and/or
** * other materials provided with the distribution.
** *
** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
** * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
** * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
** ###################################################################*/
/*!
** @file McuDS18B20.h
** @version 01.00
** @brief
**
This is a component for the Maxim DS18B20 1-Wire temperature sensor.
*/
/*!
** @addtogroup McuDS18B20_module McuDS18B20 module documentation
** @{
*/
#ifndef __McuDS18B20_H
#define __McuDS18B20_H
/* MODULE McuDS18B20. */
#include "McuLib.h" /* SDK and API used */
#include "McuDS18B20config.h" /* configuration */
#include "McuShell.h" /* Shell */
#ifdef __cplusplus
extern "C" {
#endif
/* sensor resolution */
typedef enum {
DS18B20_RESOLUTION_BITS_9 = 0b00, /* conversion time: 93.75 ms */
DS18B20_RESOLUTION_BITS_10 = 0b01, /* conversion time: 187.5 ms */
DS18B20_RESOLUTION_BITS_11 = 0b10, /* conversion time: 375 ms */
DS18B20_RESOLUTION_BITS_12 = 0b11 /* conversion time: 750 ms */
} DS18B20_ResolutionBits;
#define DS18B20_FAMILY_CODE 0x28 /* 8-bit family code for DS128B20 */
#define DS18B20_ROM_CODE_SIZE 8 /* 8 byte ROM code (family ID, 6 bytes for ID plus 1 byte CRC */
#define McuDS18B20_PARSE_COMMAND_ENABLED McuDS18B20_CONFIG_PARSE_COMMAND_ENABLED
/*!< set to 1 if method ParseCommand() is present, 0 otherwise */
uint8_t McuDS18B20_StartConversion(uint8_t sensor_index);
/*
** ===================================================================
** Method : StartConversion (component DS18B20)
**
** Description :
** Starts the conversion of temperature in the sensor.
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** Returns :
** --- - error code
** ===================================================================
*/
uint8_t McuDS18B20_SetResolution(uint8_t sensor_index, DS18B20_ResolutionBits resolution);
/*
** ===================================================================
** Method : SetResolution (component DS18B20)
**
** Description :
** Sets the resolution
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Index of the sensor to
** set the resolution.
** config_bits - Two bits resolution config
** value:
** [0b00] - 9 bits.
** [0b01] - 10 bits.
** [0b10] - 11 bits.
** [0b11] - 12 bits.
** Returns :
** --- - error code
** ===================================================================
*/
uint8_t McuDS18B20_ReadTemperature(uint8_t sensor_index);
/*
** ===================================================================
** Method : ReadTemperature (component DS18B20)
**
** Description :
** Read the temperature value from the sensor and stores it in
** memory
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** Returns :
** --- - error code
** ===================================================================
*/
uint8_t McuDS18B20_GetTemperatureRaw(uint16_t sensor_index, uint32_t *raw);
/*
** ===================================================================
** Method : GetTemperature (component DS18B20)
**
** Description :
** Gets the temperature from memory.
** Parameters :
** NAME - DESCRIPTION
** * sensor_index - Index of the sensor to
** get the temperature value.
** Returns :
** --- -
** ===================================================================
*/
bool McuDS18B20_isBusy(void);
/*
** ===================================================================
** Method : isBusy (component DS18B20)
**
** Description :
** Returns TRUE if there are a operation in progress.
** Parameters : None
** Returns :
** --- - Returns TRUE if the device is busy, and
** FALSE if its ready to operate.
** ===================================================================
*/
uint8_t McuDS18B20_GetRomCode(uint8_t sensor_index, uint8_t **romCodePtr);
/*
** ===================================================================
** Method : GetRomCode (component DS18B20)
**
** Description :
** Gets the rom code from the memory.
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** * romCodePtr - Pointer to a pointer for the
** return value
** Returns :
** --- - error code
** ===================================================================
*/
uint8_t McuDS18B20_ReadRom(uint8_t sensor_index);
/*
** ===================================================================
** Method : ReadRom (component DS18B20)
**
** Description :
** Starts to read the rom code and saves it in memory.
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** Returns :
** --- - error code
** ===================================================================
*/
void McuDS18B20_Init(void);
/*
** ===================================================================
** Method : Init (component DS18B20)
**
** Description :
** Initializes the device.
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
uint8_t McuDS18B20_GetTemperatureFloat(uint8_t sensor_index, float *temperature);
/*
** ===================================================================
** Method : GetTemperatureFloat (component DS18B20)
**
** Description :
** Returns the temperature from memory in floating point format.
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** * temperature - Pointer to where to store
** the value
** Returns :
** --- - Error code
** ===================================================================
*/
uint8_t McuDS18B20_ParseCommand(const unsigned char* cmd, bool *handled, const McuShell_StdIOType *io);
/*
** ===================================================================
** Method : ParseCommand (component DS18B20)
**
** Description :
** Shell Command Line parser. Method is only available if Shell
** is enabled in the component properties.
** Parameters :
** NAME - DESCRIPTION
** cmd - command string
** * handled - Pointer to variable which tells if
** the command has been handled or not
** io - Pointer to I/O structure
** Returns :
** --- - Error code
** ===================================================================
*/
void McuDS18B20_Deinit(void);
/*
** ===================================================================
** Method : Deinit (component DS18B20)
**
** Description :
** Driver deinitialization routine
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
uint8_t McuDS18B20_ReadResolution(uint8_t sensor_index);
/*
** ===================================================================
** Method : ReadResolution (component DS18B20)
**
** Description :
** Read the sensor resolution sensor and stores it in memory
** Parameters :
** NAME - DESCRIPTION
** sensor_index - Sensor index, use zero
** if only using one sensor
** Returns :
** --- - error code
** ===================================================================
*/
uint8_t McuDS18B20_SearchAndAssignROMCodes(void);
/*
** ===================================================================
** Method : SearchAndAssignROMCodes (component DS18B20)
**
** Description :
** Scans the devices on the bus and assigns the ROM codes to
** the list of available sensors
** Parameters : None
** Returns :
** --- - Error code
** ===================================================================
*/
/* END McuDS18B20. */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
/* ifndef __McuDS18B20_H */
/*!
** @}
*/