thermo16 2.0.0.0
thermo16.h
Go to the documentation of this file.
1/*
2 * MikroSDK - MikroE Software Development Kit
3 * Copyright (c) 2019, MikroElektronika - www.mikroe.com
4 * All rights reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24
34#ifndef THERMO16_H
35#define THERMO16_H
36
41#ifdef PREINIT_SUPPORTED
42#include "preinit.h"
43#endif
44
45#ifdef MikroCCoreVersion
46 #if MikroCCoreVersion >= 1
47 #include "delays.h"
48 #endif
49#endif
50
51#include "drv_analog_in.h"
52
53// -------------------------------------------------------------- PUBLIC MACROS
54
64#define THERMO16_MAP_MIKROBUS( cfg, mikrobus ) \
65 cfg.an_pin = MIKROBUS( mikrobus, MIKROBUS_AN )
72#define THERMO16_RETVAL uint8_t
73
74#define THERMO16_OK 0x00
75#define THERMO16_INIT_ERROR 0xFF
82#define THERMO16_TEMP_IN_CELSIUS 0x00
83#define THERMO16_TEMP_IN_KELVIN 0x01
84#define THERMO16_TEMP_IN_FAHRENHEIT 0x02
87 // End group macro
88// --------------------------------------------------------------- PUBLIC TYPES
97typedef uint16_t thermo16_data_t;
98
102typedef struct
103{
104 // Modules
105
106 analog_in_t adc;
107 analog_in_resolution_t adc_res;
108
109} thermo16_t;
110
114typedef struct
115{
116 // Communication gpio pins
117
118 pin_name_t an_pin;
119
120 // static variable
121
122 analog_in_resolution_t resolution; // Resolution
123 float vref; // VRef
124
126
127 // End types group
128// ----------------------------------------------- PUBLIC FUNCTION DECLARATIONS
129
135#ifdef __cplusplus
136extern "C"{
137#endif
138
148
158
168
178float thermo16_get_temperature ( thermo16_t *ctx, uint8_t temp_format );
179
180
181#ifdef __cplusplus
182}
183#endif
184#endif // _THERMO16_H_
185
186 // End public_function group
188
189// ------------------------------------------------------------------------ END
#define THERMO16_RETVAL
Definition thermo16.h:72
thermo16_data_t thermo16_generic_read(thermo16_t *ctx)
Generic read function.
float thermo16_get_temperature(thermo16_t *ctx, uint8_t temp_format)
Temperature function.
void thermo16_cfg_setup(thermo16_cfg_t *cfg)
Config Object Initialization function.
THERMO16_RETVAL thermo16_init(thermo16_t *ctx, thermo16_cfg_t *cfg)
Initialization function.
uint16_t thermo16_data_t
Analog data type.
Definition thermo16.h:97
Click configuration structure definition.
Definition thermo16.h:115
analog_in_resolution_t resolution
Definition thermo16.h:122
float vref
Definition thermo16.h:123
pin_name_t an_pin
Definition thermo16.h:118
Click ctx object definition.
Definition thermo16.h:103
analog_in_resolution_t adc_res
Definition thermo16.h:107
analog_in_t adc
Definition thermo16.h:106