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
libraries/cn0216/CN0216.h
- Committer:
- Adrian Suciu
- Date:
- 2016-04-29
- Revision:
- 13:66c8e4ce4ff1
- Child:
- 17:b8356808e8ad
File content as of revision 13:66c8e4ce4ff1:
#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