HW3_DHT22_TCP

Dependencies:   SDFileSystem

Committer:
Proverbs
Date:
Tue Jan 02 11:43:43 2018 +0000
Revision:
0:e548610ed175
HW2_DHT_TCP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Proverbs 0:e548610ed175 1 #ifndef MMA7455_H
Proverbs 0:e548610ed175 2 #define MMA7455_H
Proverbs 0:e548610ed175 3
Proverbs 0:e548610ed175 4
Proverbs 0:e548610ed175 5 /**
Proverbs 0:e548610ed175 6 * Freescale Accelerometer MMA7455.
Proverbs 0:e548610ed175 7 */
Proverbs 0:e548610ed175 8 class MMA7455 {
Proverbs 0:e548610ed175 9 public:
Proverbs 0:e548610ed175 10
Proverbs 0:e548610ed175 11 enum Mode {
Proverbs 0:e548610ed175 12 ModeStandby = 0,
Proverbs 0:e548610ed175 13 ModeMeasurement = 1,
Proverbs 0:e548610ed175 14 };
Proverbs 0:e548610ed175 15
Proverbs 0:e548610ed175 16 /** Acceleration range */
Proverbs 0:e548610ed175 17 enum Range {
Proverbs 0:e548610ed175 18 Range_8g = 0,
Proverbs 0:e548610ed175 19 Range_2g = 1,
Proverbs 0:e548610ed175 20 Range_4g = 2
Proverbs 0:e548610ed175 21 };
Proverbs 0:e548610ed175 22
Proverbs 0:e548610ed175 23 /**
Proverbs 0:e548610ed175 24 * Create an interface to the MMA7455 accelerometer
Proverbs 0:e548610ed175 25 *
Proverbs 0:e548610ed175 26 * @param sda I2C data line pin
Proverbs 0:e548610ed175 27 * @param scl I2C clock line pin
Proverbs 0:e548610ed175 28 */
Proverbs 0:e548610ed175 29 MMA7455(PinName sda, PinName scl);
Proverbs 0:e548610ed175 30
Proverbs 0:e548610ed175 31 bool setMode(Mode mode);
Proverbs 0:e548610ed175 32 bool setRange(Range range);
Proverbs 0:e548610ed175 33
Proverbs 0:e548610ed175 34 bool read(int32_t& x, int32_t& y, int32_t& z);
Proverbs 0:e548610ed175 35
Proverbs 0:e548610ed175 36 /**
Proverbs 0:e548610ed175 37 * Calibrate for 0g, that is, calculate offset to achieve
Proverbs 0:e548610ed175 38 * 0g values when accelerometer is placed on flat surface.
Proverbs 0:e548610ed175 39 *
Proverbs 0:e548610ed175 40 * Please make sure the accelerometer is placed on a flat surface before
Proverbs 0:e548610ed175 41 * calling this function.
Proverbs 0:e548610ed175 42 *
Proverbs 0:e548610ed175 43 * @return true if request was successful; otherwise false
Proverbs 0:e548610ed175 44 */
Proverbs 0:e548610ed175 45 bool calibrate();
Proverbs 0:e548610ed175 46
Proverbs 0:e548610ed175 47 /**
Proverbs 0:e548610ed175 48 * Get calculated offset values. Offsets will be calculated by the
Proverbs 0:e548610ed175 49 * calibrate() method.
Proverbs 0:e548610ed175 50 *
Proverbs 0:e548610ed175 51 * Use these values and put them in persistent storage to avoid
Proverbs 0:e548610ed175 52 * having to calibrate the accelerometer after a reset/power cycle.
Proverbs 0:e548610ed175 53 *
Proverbs 0:e548610ed175 54 * @param xOff x offset is written to this argument
Proverbs 0:e548610ed175 55 * @param yOff y offset is written to this argument
Proverbs 0:e548610ed175 56 * @param zOff z offset is written to this argument
Proverbs 0:e548610ed175 57 *
Proverbs 0:e548610ed175 58 * @return true if request was successful; otherwise false
Proverbs 0:e548610ed175 59 */
Proverbs 0:e548610ed175 60 bool getCalibrationOffsets(int32_t& xOff, int32_t& yOff, int32_t& zOff);
Proverbs 0:e548610ed175 61
Proverbs 0:e548610ed175 62 /**
Proverbs 0:e548610ed175 63 * Set calibration offset values. These values should normally
Proverbs 0:e548610ed175 64 * at one point in time have been retrieved by calling the
Proverbs 0:e548610ed175 65 * getCalibrationOffsets method.
Proverbs 0:e548610ed175 66 *
Proverbs 0:e548610ed175 67 *
Proverbs 0:e548610ed175 68 * @param xOff x offset
Proverbs 0:e548610ed175 69 * @param yOff y offset
Proverbs 0:e548610ed175 70 * @param zOff z offset
Proverbs 0:e548610ed175 71 *
Proverbs 0:e548610ed175 72 * @return true if request was successful; otherwise false
Proverbs 0:e548610ed175 73 */
Proverbs 0:e548610ed175 74 bool setCalibrationOffsets(int32_t xOff, int32_t yOff, int32_t zOff);
Proverbs 0:e548610ed175 75
Proverbs 0:e548610ed175 76
Proverbs 0:e548610ed175 77
Proverbs 0:e548610ed175 78 private:
Proverbs 0:e548610ed175 79
Proverbs 0:e548610ed175 80 I2C _i2c;
Proverbs 0:e548610ed175 81 Mode _mode;
Proverbs 0:e548610ed175 82 Range _range;
Proverbs 0:e548610ed175 83 int32_t _xOff;
Proverbs 0:e548610ed175 84 int32_t _yOff;
Proverbs 0:e548610ed175 85 int32_t _zOff;
Proverbs 0:e548610ed175 86
Proverbs 0:e548610ed175 87 int getStatus();
Proverbs 0:e548610ed175 88 int getModeControl();
Proverbs 0:e548610ed175 89 int setModeControl(uint8_t mctl);
Proverbs 0:e548610ed175 90
Proverbs 0:e548610ed175 91 };
Proverbs 0:e548610ed175 92
Proverbs 0:e548610ed175 93 #endif