TempSensor_NXP_Arduino 1.0.1
Temperature sensor device operation sample code for Arduino
Loading...
Searching...
No Matches
TempSensor.cpp
Go to the documentation of this file.
1#include "TempSensor.h"
2
3/* TempSensor class ******************************************/
4
5TempSensor::TempSensor( const uint8_t i2c_address ) : I2C_device( i2c_address )
6{
7}
8
9TempSensor::TempSensor( TwoWire& wire, const uint8_t i2c_address ) : I2C_device( wire, i2c_address )
10{
11}
12
16
18{
19 return temp();
20}
21
22/* LM75B class ******************************************/
23
24LM75B::LM75B( const uint8_t i2c_address ) : TempSensor( i2c_address )
25{
26}
27
28LM75B::LM75B( TwoWire& wire, const uint8_t i2c_address ) : TempSensor( wire, i2c_address )
29{
30}
31
33{
34}
35
37{
38 return read_r16( Temp ) / 256.0;
39}
40
41void LM75B::thresholds( const float v0, const float v1 )
42{
43 float higher = (v0 < v1) ? v1 : v0;
44 float lower = (v0 < v1) ? v0 : v1;
45
46 write_r16( Tos, ((uint16_t)(higher * 256.0)) & 0xFF80 );
47 write_r16( Thyst, ((uint16_t)(lower * 256.0)) & 0xFF80 );
48}
49
50void LM75B::os_mode( const mode flag )
51{
52 bit_op8( Conf, ~0x02, flag << 1 );
53}
54
55/* PCT2075 class ******************************************/
56PCT2075::PCT2075( const uint8_t i2c_address ) : LM75B( i2c_address )
57{
58}
59
60PCT2075::PCT2075( TwoWire& wire, const uint8_t i2c_address ) : LM75B( wire, i2c_address )
61{
62}
63
67
68/* P3T1755 class ******************************************/
69
70P3T1755::P3T1755( const uint8_t i2c_address ) : LM75B( i2c_address )
71{
72}
73
74P3T1755::P3T1755( TwoWire& wire, const uint8_t i2c_address ) : LM75B( wire, i2c_address )
75{
76}
77
81
82void P3T1755::thresholds( const float v0, const float v1 )
83{
84 float higher = (v0 < v1) ? v1 : v0;
85 float lower = (v0 < v1) ? v0 : v1;
86
87 write_r16( T_HIGH, ((uint16_t)(higher * 256.0)) & 0xFFF0 );
88 write_r16( T_LOW, ((uint16_t)(lower * 256.0)) & 0xFFF0 );
89}
90
91/* P3T1085 class ******************************************/
92
93P3T1085::P3T1085( const uint8_t i2c_address ) : P3T1755( i2c_address )
94{
95}
96
97P3T1085::P3T1085( TwoWire& wire, const uint8_t i2c_address ) : P3T1755( wire, i2c_address )
98{
99}
100
104
105void P3T1085::os_mode( const mode flag )
106{
107 bit_op16( Conf, ~0x0400, flag << 10 );
108}
109
110bool P3T1085::clear( void )
111{
112 return (read_r16( Conf ) & 0x1000) ? true : false;
113}
virtual void os_mode(const mode flag)
@ Thyst
Definition TempSensor.h:66
uint16_t read_r16(const uint8_t reg)
void bit_op8(const uint8_t reg, const uint8_t mask, const uint8_t value)
virtual float temp(void) override
LM75B(const uint8_t i2c_address=(0x90 > > 1))
virtual ~LM75B()
virtual void thresholds(const float v0, const float v1)
void write_r16(const uint8_t reg, const uint16_t val)
void bit_op16(const uint8_t reg, const uint16_t mask, const uint16_t value)
P3T1085(uint8_t i2c_address=(0x90 > > 1))
virtual bool clear(void)
uint16_t read_r16(const uint8_t reg)
virtual void os_mode(const mode flag) override
virtual ~P3T1085()
void write_r16(const uint8_t reg, const uint16_t val)
virtual void thresholds(const float v0, const float v1) override
P3T1755(const uint8_t i2c_address=(0x98 > > 1))
virtual ~P3T1755()
virtual ~PCT2075()
PCT2075(const uint8_t i2c_address=(0x90 > > 1))
virtual float read(void)
virtual ~TempSensor()
virtual float temp(void)=0
TempSensor(const uint8_t i2c_address)
Definition TempSensor.cpp:5