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

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