MMA7260Q Accelerometer

Committer:
yamaguch
Date:
Mon Mar 07 04:15:02 2011 +0000
Revision:
0:7d4712fa571d
Child:
1:31200b0a07e3

        

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