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:
Fri Apr 29 16:19:00 2016 +0300
Revision:
13:66c8e4ce4ff1
Child:
17:b8356808e8ad
Added driver for AD7791 and example for CN0216

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Adrian Suciu 13:66c8e4ce4ff1 1
Adrian Suciu 13:66c8e4ce4ff1 2 #include "mbed.h"
Adrian Suciu 13:66c8e4ce4ff1 3 #include "AD7791.h"
Adrian Suciu 13:66c8e4ce4ff1 4
Adrian Suciu 13:66c8e4ce4ff1 5 #ifndef CN0216_H_
Adrian Suciu 13:66c8e4ce4ff1 6 #define CN0216_H_
Adrian Suciu 13:66c8e4ce4ff1 7
Adrian Suciu 13:66c8e4ce4ff1 8 class CN0216
Adrian Suciu 13:66c8e4ce4ff1 9 {
Adrian Suciu 13:66c8e4ce4ff1 10 public:
Adrian Suciu 13:66c8e4ce4ff1 11 typedef enum
Adrian Suciu 13:66c8e4ce4ff1 12 {
Adrian Suciu 13:66c8e4ce4ff1 13 ZERO_SCALE_CALIBRATION,
Adrian Suciu 13:66c8e4ce4ff1 14 FULL_SCALE_CALIBRATION,
Adrian Suciu 13:66c8e4ce4ff1 15 COMPUTE_GRAM_PER_BIT
Adrian Suciu 13:66c8e4ce4ff1 16 } CalibrationStep_t;
Adrian Suciu 13:66c8e4ce4ff1 17
Adrian Suciu 13:66c8e4ce4ff1 18 CN0216(PinName CSAD7791 = D8, PinName MOSI = SPI_MOSI, PinName MISO = SPI_MISO, PinName SCK = SPI_SCK);
Adrian Suciu 13:66c8e4ce4ff1 19 void init(float cal_weight = _DEFAULT_CAL_WEIGHT, uint8_t mode_val = _DEFAULT_MODE_VAL, uint8_t filter_val = _DEFAULT_FILTER_VAL);
Adrian Suciu 13:66c8e4ce4ff1 20 void calibrate(CalibrationStep_t cal);
Adrian Suciu 13:66c8e4ce4ff1 21 float compute_weight(uint32_t data);
Adrian Suciu 13:66c8e4ce4ff1 22 uint32_t read_u32();
Adrian Suciu 13:66c8e4ce4ff1 23 float read_weight() ;
Adrian Suciu 13:66c8e4ce4ff1 24
Adrian Suciu 13:66c8e4ce4ff1 25 private:
Adrian Suciu 13:66c8e4ce4ff1 26
Adrian Suciu 13:66c8e4ce4ff1 27 const static int _DEFAULT_MODE_VAL = AD7791::MD1 | AD7791::MD0; // POWERDOWN MODE
Adrian Suciu 13:66c8e4ce4ff1 28 const static int _DEFAULT_FILTER_VAL = AD7791::FS0 | AD7791::FS1 | AD7791::FS2;
Adrian Suciu 13:66c8e4ce4ff1 29 const static int _NUMBER_OF_SAMPLES = 50;
Adrian Suciu 13:66c8e4ce4ff1 30 const static int _DEFAULT_CAL_WEIGHT = 1000.0;
Adrian Suciu 13:66c8e4ce4ff1 31
Adrian Suciu 13:66c8e4ce4ff1 32 AD7791 ad7791;
Adrian Suciu 13:66c8e4ce4ff1 33 float _cal_weight;
Adrian Suciu 13:66c8e4ce4ff1 34 uint32_t _zero_scale_value;
Adrian Suciu 13:66c8e4ce4ff1 35 uint32_t _full_scale_value;
Adrian Suciu 13:66c8e4ce4ff1 36 float _grams_per_bit;
Adrian Suciu 13:66c8e4ce4ff1 37
Adrian Suciu 13:66c8e4ce4ff1 38 };
Adrian Suciu 13:66c8e4ce4ff1 39
Adrian Suciu 13:66c8e4ce4ff1 40 #endif