TempSensor_NXP_Arduino 1.1.0
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( uint8_t i2c_address ) : I2C_device( i2c_address ){}
6TempSensor::TempSensor( TwoWire& wire, uint8_t i2c_address ) : I2C_device( wire, i2c_address ){}
8
10{
11 return temp();
12}
13
14/* LM75B class ******************************************/
15
16LM75B::LM75B( uint8_t i2c_address ) : TempSensor( i2c_address ){}
17LM75B::LM75B( TwoWire& wire, uint8_t i2c_address ) : TempSensor( wire, i2c_address ){}
19
21{
22 return read_r16( Temp ) / 256.0;
23}
24
25void LM75B::thresholds( float v0, float v1 )
26{
27 float higher = (v0 < v1) ? v1 : v0;
28 float lower = (v0 < v1) ? v0 : v1;
29
30 write_r16( Tos, ((uint16_t)(higher * 256.0)) & 0xFF80 );
31 write_r16( Thyst, ((uint16_t)(lower * 256.0)) & 0xFF80 );
32}
33
34void LM75B::os_mode( mode flag )
35{
36 bit_op8( Conf, ~0x02, flag << 1 );
37}
38
39/* PCT2075 class ******************************************/
40PCT2075::PCT2075( uint8_t i2c_address ) : LM75B( i2c_address ){}
41PCT2075::PCT2075( TwoWire& wire, uint8_t i2c_address ) : LM75B( wire, i2c_address ){}
43
44/* P3T1755 class ******************************************/
45
46P3T1755::P3T1755( uint8_t i2c_address ) : LM75B( i2c_address ){}
47P3T1755::P3T1755( TwoWire& wire, uint8_t i2c_address ) : LM75B( wire, i2c_address ){}
49
50void P3T1755::thresholds( float v0, float v1 )
51{
52 float higher = (v0 < v1) ? v1 : v0;
53 float lower = (v0 < v1) ? v0 : v1;
54
55 write_r16( T_HIGH, ((uint16_t)(higher * 256.0)) & 0xFFF0 );
56 write_r16( T_LOW, ((uint16_t)(lower * 256.0)) & 0xFFF0 );
57}
58
59/* P3T1085 class ******************************************/
60
61P3T1085::P3T1085( uint8_t i2c_address ) : P3T1755( i2c_address ){}
62P3T1085::P3T1085( TwoWire& wire, uint8_t i2c_address ) : P3T1755( wire, i2c_address ){}
65{
66 bit_op16( Conf, ~0x0400, flag << 10 );
67}
68
69bool P3T1085::clear( void )
70{
71 return (read_r16( Conf ) & 0x1000) ? true : false;
72}
73
74/* P3T1035 class ******************************************/
75
76P3T1035::P3T1035( uint8_t i2c_address ) : P3T1755( i2c_address ){}
77P3T1035::P3T1035( TwoWire& wire, uint8_t i2c_address ) : P3T1755( wire, i2c_address ){}
79
80#pragma GCC diagnostic push
81#pragma GCC diagnostic ignored "-Wunused-parameter"
83{
84 // Do nothing since this device doesn't have "Thermostat Mode"
85}
86#pragma GCC diagnostic pop
87
88/* P3T2030 class ******************************************/
89
90P3T2030::P3T2030( uint8_t i2c_address ) : P3T1035( i2c_address ){}
91P3T2030::P3T2030( TwoWire& wire, uint8_t i2c_address ) : P3T1035( wire, i2c_address ){}
@ Thyst
Definition TempSensor.h:66
uint16_t read_r16(uint8_t reg)
void write_r16(uint8_t reg, uint16_t val)
virtual float temp(void) override
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
virtual ~LM75B()
virtual void thresholds(float v0, float v1)
virtual void os_mode(mode flag)
LM75B(uint8_t i2c_address=(0x90 > > 1))
virtual ~P3T1035()
P3T1035(uint8_t i2c_address=(0xE4 > > 1))
virtual void os_mode(mode flag)
P3T1085(uint8_t i2c_address=(0x90 > > 1))
virtual bool clear(void)
void bit_op16(uint8_t reg, uint16_t mask, uint16_t value)
virtual void os_mode(mode flag) override
virtual ~P3T1085()
uint16_t read_r16(uint8_t reg)
void write_r16(uint8_t reg, uint16_t val)
virtual ~P3T1755()
P3T1755(uint8_t i2c_address=(0x98 > > 1))
virtual void thresholds(float v0, float v1) override
virtual ~P3T2030()
P3T2030(uint8_t i2c_address=(0xE0 > > 1))
PCT2075(uint8_t i2c_address=(0x90 > > 1))
virtual ~PCT2075()
virtual float read(void)
Definition TempSensor.cpp:9
TempSensor(uint8_t i2c_address)
Definition TempSensor.cpp:5
virtual ~TempSensor()
Definition TempSensor.cpp:7
virtual float temp(void)=0