MMA7260Q Accelerometer

Committer:
yamaguch
Date:
Mon Mar 07 04:30:56 2011 +0000
Revision:
1:31200b0a07e3
Parent:
0:7d4712fa571d
Child:
2:438a6eb3d251

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 0:7d4712fa571d 1 #ifndef ACCELEROMETER_H
yamaguch 0:7d4712fa571d 2 #define ACCELEROMETER_H
yamaguch 0:7d4712fa571d 3
yamaguch 0:7d4712fa571d 4 #include "mbed.h"
yamaguch 0:7d4712fa571d 5
yamaguch 1:31200b0a07e3 6 /**
yamaguch 1:31200b0a07e3 7 * MMA7260Q Accelerometer
yamaguch 1:31200b0a07e3 8 */
yamaguch 0:7d4712fa571d 9 class Accelerometer {
yamaguch 0:7d4712fa571d 10 public:
yamaguch 0:7d4712fa571d 11 /**
yamaguch 0:7d4712fa571d 12 * Creates an MMA7260Q accelerometer interface, connected to the specified pins
yamaguch 0:7d4712fa571d 13 *
yamaguch 0:7d4712fa571d 14 * @param xPin X pin
yamaguch 0:7d4712fa571d 15 * @param yPin Y pin
yamaguch 0:7d4712fa571d 16 * @param zPin Z pin
yamaguch 0:7d4712fa571d 17 * @param gs1Pin 1.5G/2G/4G/6G select pin
yamaguch 0:7d4712fa571d 18 * @param gs2Pin 1.5G/2G/4G/6G select pin
yamaguch 0:7d4712fa571d 19 * @param slpPin Sleep pin
yamaguch 0:7d4712fa571d 20 *
yamaguch 0:7d4712fa571d 21 */
yamaguch 0:7d4712fa571d 22 Accelerometer(PinName xPin, PinName yPin, PinName zPin, PinName gs1Pin, PinName gs2Pin, PinName slpPin);
yamaguch 0:7d4712fa571d 23
yamaguch 1:31200b0a07e3 24 /**
yamaguch 1:31200b0a07e3 25 * Scale
yamaguch 1:31200b0a07e3 26 */
yamaguch 0:7d4712fa571d 27 enum Scale {
yamaguch 1:31200b0a07e3 28 SCALE_1_5G, /// 1.5G mode
yamaguch 1:31200b0a07e3 29 SCALE_2G, /// 2G mode
yamaguch 1:31200b0a07e3 30 SCALE_4G, /// 4G mode
yamaguch 1:31200b0a07e3 31 SCALE_6G /// 6G mode
yamaguch 0:7d4712fa571d 32 };
yamaguch 0:7d4712fa571d 33
yamaguch 0:7d4712fa571d 34 /**
yamaguch 0:7d4712fa571d 35 * get the current total acceleration
yamaguch 0:7d4712fa571d 36 *
yamaguch 0:7d4712fa571d 37 * @returns total acceleration in g
yamaguch 0:7d4712fa571d 38 */
yamaguch 0:7d4712fa571d 39 float getAccel();
yamaguch 0:7d4712fa571d 40
yamaguch 0:7d4712fa571d 41 /**
yamaguch 0:7d4712fa571d 42 * get the current acceleration along the X axis
yamaguch 0:7d4712fa571d 43 *
yamaguch 0:7d4712fa571d 44 * @returns acceleration along the X axis
yamaguch 0:7d4712fa571d 45 */
yamaguch 0:7d4712fa571d 46 float getAccelX();
yamaguch 0:7d4712fa571d 47
yamaguch 0:7d4712fa571d 48 /**
yamaguch 0:7d4712fa571d 49 * get the current acceleration along the Y axis
yamaguch 0:7d4712fa571d 50 *
yamaguch 0:7d4712fa571d 51 * @returns acceleration along the Y axis
yamaguch 0:7d4712fa571d 52 */
yamaguch 0:7d4712fa571d 53 float getAccelY();
yamaguch 0:7d4712fa571d 54
yamaguch 0:7d4712fa571d 55 /**
yamaguch 0:7d4712fa571d 56 * get the current acceleration along the Z axis
yamaguch 0:7d4712fa571d 57 *
yamaguch 0:7d4712fa571d 58 * @returns acceleration along the Z axis
yamaguch 0:7d4712fa571d 59 */
yamaguch 0:7d4712fa571d 60 float getAccelZ();
yamaguch 0:7d4712fa571d 61
yamaguch 0:7d4712fa571d 62 /* Function: getTiltX
yamaguch 0:7d4712fa571d 63 * compute the inclination of the X axis
yamaguch 0:7d4712fa571d 64 *
yamaguch 0:7d4712fa571d 65 * @returns the inclination of the X axis
yamaguch 0:7d4712fa571d 66 */
yamaguch 0:7d4712fa571d 67 float getTiltX();
yamaguch 0:7d4712fa571d 68
yamaguch 0:7d4712fa571d 69 /* Function: getTiltY
yamaguch 0:7d4712fa571d 70 * compute the inclination of the Y axis
yamaguch 0:7d4712fa571d 71 *
yamaguch 0:7d4712fa571d 72 * Returns:
yamaguch 0:7d4712fa571d 73 * the inclination of the Y axis
yamaguch 0:7d4712fa571d 74 */
yamaguch 0:7d4712fa571d 75 float getTiltY();
yamaguch 0:7d4712fa571d 76
yamaguch 0:7d4712fa571d 77 /* Function: getTiltZ
yamaguch 0:7d4712fa571d 78 * compute the inclination of the Z axis
yamaguch 0:7d4712fa571d 79 *
yamaguch 0:7d4712fa571d 80 * Returns:
yamaguch 0:7d4712fa571d 81 * the inclination of the Z axis
yamaguch 0:7d4712fa571d 82 */
yamaguch 0:7d4712fa571d 83 float getTiltZ();
yamaguch 0:7d4712fa571d 84
yamaguch 0:7d4712fa571d 85 /* Function: setScale
yamaguch 0:7d4712fa571d 86 * specify the scale to use
yamaguch 0:7d4712fa571d 87 *
yamaguch 0:7d4712fa571d 88 * Variables:
yamaguch 0:7d4712fa571d 89 * scale - SCALE_1_5G (for 1.5G) or SCALE_6G (for 6G)
yamaguch 0:7d4712fa571d 90 */
yamaguch 0:7d4712fa571d 91 void setScale(Scale scale);
yamaguch 0:7d4712fa571d 92
yamaguch 0:7d4712fa571d 93 /* Function: setSleep
yamaguch 0:7d4712fa571d 94 * activate sleep mode
yamaguch 0:7d4712fa571d 95 *
yamaguch 0:7d4712fa571d 96 * Variables:
yamaguch 0:7d4712fa571d 97 * on - true to activate sleep mode, false to resume normal operation
yamaguch 0:7d4712fa571d 98 */
yamaguch 0:7d4712fa571d 99 void setSleep(bool on);
yamaguch 0:7d4712fa571d 100
yamaguch 0:7d4712fa571d 101 private:
yamaguch 0:7d4712fa571d 102 AnalogIn xout;
yamaguch 0:7d4712fa571d 103 AnalogIn yout;
yamaguch 0:7d4712fa571d 104 AnalogIn zout;
yamaguch 0:7d4712fa571d 105 DigitalOut gs1;
yamaguch 0:7d4712fa571d 106 DigitalOut gs2;
yamaguch 0:7d4712fa571d 107 DigitalOut sleep;
yamaguch 0:7d4712fa571d 108 float scale;
yamaguch 0:7d4712fa571d 109 };
yamaguch 0:7d4712fa571d 110
yamaguch 0:7d4712fa571d 111 #endif