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
Diff: libraries/cn0216/CN0216.h
- Revision:
- 13:66c8e4ce4ff1
- Child:
- 17:b8356808e8ad
diff -r 2e67c719ce37 -r 66c8e4ce4ff1 libraries/cn0216/CN0216.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libraries/cn0216/CN0216.h Fri Apr 29 16:19:00 2016 +0300 @@ -0,0 +1,40 @@ + +#include "mbed.h" +#include "AD7791.h" + +#ifndef CN0216_H_ +#define CN0216_H_ + +class CN0216 +{ +public: + typedef enum + { + ZERO_SCALE_CALIBRATION, + FULL_SCALE_CALIBRATION, + COMPUTE_GRAM_PER_BIT + } CalibrationStep_t; + + CN0216(PinName CSAD7791 = D8, PinName MOSI = SPI_MOSI, PinName MISO = SPI_MISO, PinName SCK = SPI_SCK); + void init(float cal_weight = _DEFAULT_CAL_WEIGHT, uint8_t mode_val = _DEFAULT_MODE_VAL, uint8_t filter_val = _DEFAULT_FILTER_VAL); + void calibrate(CalibrationStep_t cal); + float compute_weight(uint32_t data); + uint32_t read_u32(); + float read_weight() ; + +private: + + const static int _DEFAULT_MODE_VAL = AD7791::MD1 | AD7791::MD0; // POWERDOWN MODE + const static int _DEFAULT_FILTER_VAL = AD7791::FS0 | AD7791::FS1 | AD7791::FS2; + const static int _NUMBER_OF_SAMPLES = 50; + const static int _DEFAULT_CAL_WEIGHT = 1000.0; + + AD7791 ad7791; + float _cal_weight; + uint32_t _zero_scale_value; + uint32_t _full_scale_value; + float _grams_per_bit; + +}; + +#endif