A collection of Analog Devices drivers for the mbed platform

For additional information check out the mbed page of the Analog Devices wiki: https://wiki.analog.com/resources/tools-software/mbed-drivers-all

Committer:
Adrian Suciu
Date:
Mon Nov 07 16:27:12 2016 +0200
Revision:
33:c3ec596a29c2
Added CN0391, CN0396 and CN0397 shields

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Adrian Suciu 33:c3ec596a29c2 1 #include "mbed.h"
Adrian Suciu 33:c3ec596a29c2 2 #ifndef _THERMOCOUPLE_H_
Adrian Suciu 33:c3ec596a29c2 3 #define _THERMOCOUPLE_H_
Adrian Suciu 33:c3ec596a29c2 4
Adrian Suciu 33:c3ec596a29c2 5 #define DEFINE_LOOKUP_TABLES
Adrian Suciu 33:c3ec596a29c2 6 #ifdef DEFINE_LOOKUP_TABLES
Adrian Suciu 33:c3ec596a29c2 7 #define TYPE_B_LUT
Adrian Suciu 33:c3ec596a29c2 8 #define TYPE_E_LUT
Adrian Suciu 33:c3ec596a29c2 9 #define TYPE_J_LUT
Adrian Suciu 33:c3ec596a29c2 10 #define TYPE_K_LUT
Adrian Suciu 33:c3ec596a29c2 11 #define TYPE_N_LUT
Adrian Suciu 33:c3ec596a29c2 12 #define TYPE_R_LUT
Adrian Suciu 33:c3ec596a29c2 13 #define TYPE_S_LUT
Adrian Suciu 33:c3ec596a29c2 14 #define TYPE_T_LUT
Adrian Suciu 33:c3ec596a29c2 15 #endif
Adrian Suciu 33:c3ec596a29c2 16
Adrian Suciu 33:c3ec596a29c2 17 class Thermocouple
Adrian Suciu 33:c3ec596a29c2 18 {
Adrian Suciu 33:c3ec596a29c2 19 private:
Adrian Suciu 33:c3ec596a29c2 20
Adrian Suciu 33:c3ec596a29c2 21 public:
Adrian Suciu 33:c3ec596a29c2 22 typedef struct
Adrian Suciu 33:c3ec596a29c2 23 {
Adrian Suciu 33:c3ec596a29c2 24 float min_voltage_range;
Adrian Suciu 33:c3ec596a29c2 25 float max_voltage_range;
Adrian Suciu 33:c3ec596a29c2 26 float coef[16];
Adrian Suciu 33:c3ec596a29c2 27 float power[16];
Adrian Suciu 33:c3ec596a29c2 28 int n;
Adrian Suciu 33:c3ec596a29c2 29 }thermocouple_poly_subrange;
Adrian Suciu 33:c3ec596a29c2 30 Thermocouple();
Adrian Suciu 33:c3ec596a29c2 31 virtual ~Thermocouple();
Adrian Suciu 33:c3ec596a29c2 32 static float convert(float voltage, const thermocouple_poly_subrange range[], const int n);
Adrian Suciu 33:c3ec596a29c2 33 static float lookup(const int32_t *lut, float voltage,uint16_t size,int16_t offset);
Adrian Suciu 33:c3ec596a29c2 34 virtual float convert(float voltage) = 0;
Adrian Suciu 33:c3ec596a29c2 35 virtual float convert_inv(float temp) = 0;
Adrian Suciu 33:c3ec596a29c2 36 virtual float lookup(float voltage) = 0;
Adrian Suciu 33:c3ec596a29c2 37 virtual float lookup_inv(float temp) = 0;
Adrian Suciu 33:c3ec596a29c2 38
Adrian Suciu 33:c3ec596a29c2 39 };
Adrian Suciu 33:c3ec596a29c2 40