MMA7260Q Accelerometer

Committer:
yamaguch
Date:
Mon Mar 07 04:32:27 2011 +0000
Revision:
2:438a6eb3d251
Parent:
1:31200b0a07e3
Child:
3:e31cb4dd4aa6

        

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 2:438a6eb3d251 24 /***/
yamaguch 0:7d4712fa571d 25 enum Scale {
yamaguch 1:31200b0a07e3 26 SCALE_1_5G, /// 1.5G mode
yamaguch 1:31200b0a07e3 27 SCALE_2G, /// 2G mode
yamaguch 1:31200b0a07e3 28 SCALE_4G, /// 4G mode
yamaguch 2:438a6eb3d251 29 SCALE_6G , /// 6G mode
yamaguch 0:7d4712fa571d 30 };
yamaguch 0:7d4712fa571d 31
yamaguch 0:7d4712fa571d 32 /**
yamaguch 0:7d4712fa571d 33 * get the current total acceleration
yamaguch 0:7d4712fa571d 34 *
yamaguch 0:7d4712fa571d 35 * @returns total acceleration in g
yamaguch 0:7d4712fa571d 36 */
yamaguch 0:7d4712fa571d 37 float getAccel();
yamaguch 0:7d4712fa571d 38
yamaguch 0:7d4712fa571d 39 /**
yamaguch 0:7d4712fa571d 40 * get the current acceleration along the X axis
yamaguch 0:7d4712fa571d 41 *
yamaguch 0:7d4712fa571d 42 * @returns acceleration along the X axis
yamaguch 0:7d4712fa571d 43 */
yamaguch 0:7d4712fa571d 44 float getAccelX();
yamaguch 0:7d4712fa571d 45
yamaguch 0:7d4712fa571d 46 /**
yamaguch 0:7d4712fa571d 47 * get the current acceleration along the Y axis
yamaguch 0:7d4712fa571d 48 *
yamaguch 0:7d4712fa571d 49 * @returns acceleration along the Y axis
yamaguch 0:7d4712fa571d 50 */
yamaguch 0:7d4712fa571d 51 float getAccelY();
yamaguch 0:7d4712fa571d 52
yamaguch 0:7d4712fa571d 53 /**
yamaguch 0:7d4712fa571d 54 * get the current acceleration along the Z axis
yamaguch 0:7d4712fa571d 55 *
yamaguch 0:7d4712fa571d 56 * @returns acceleration along the Z axis
yamaguch 0:7d4712fa571d 57 */
yamaguch 0:7d4712fa571d 58 float getAccelZ();
yamaguch 0:7d4712fa571d 59
yamaguch 0:7d4712fa571d 60 /* Function: getTiltX
yamaguch 0:7d4712fa571d 61 * compute the inclination of the X axis
yamaguch 0:7d4712fa571d 62 *
yamaguch 0:7d4712fa571d 63 * @returns the inclination of the X axis
yamaguch 0:7d4712fa571d 64 */
yamaguch 0:7d4712fa571d 65 float getTiltX();
yamaguch 0:7d4712fa571d 66
yamaguch 0:7d4712fa571d 67 /* Function: getTiltY
yamaguch 0:7d4712fa571d 68 * compute the inclination of the Y axis
yamaguch 0:7d4712fa571d 69 *
yamaguch 0:7d4712fa571d 70 * Returns:
yamaguch 0:7d4712fa571d 71 * the inclination of the Y axis
yamaguch 0:7d4712fa571d 72 */
yamaguch 0:7d4712fa571d 73 float getTiltY();
yamaguch 0:7d4712fa571d 74
yamaguch 0:7d4712fa571d 75 /* Function: getTiltZ
yamaguch 0:7d4712fa571d 76 * compute the inclination of the Z axis
yamaguch 0:7d4712fa571d 77 *
yamaguch 0:7d4712fa571d 78 * Returns:
yamaguch 0:7d4712fa571d 79 * the inclination of the Z axis
yamaguch 0:7d4712fa571d 80 */
yamaguch 0:7d4712fa571d 81 float getTiltZ();
yamaguch 0:7d4712fa571d 82
yamaguch 0:7d4712fa571d 83 /* Function: setScale
yamaguch 0:7d4712fa571d 84 * specify the scale to use
yamaguch 0:7d4712fa571d 85 *
yamaguch 0:7d4712fa571d 86 * Variables:
yamaguch 0:7d4712fa571d 87 * scale - SCALE_1_5G (for 1.5G) or SCALE_6G (for 6G)
yamaguch 0:7d4712fa571d 88 */
yamaguch 0:7d4712fa571d 89 void setScale(Scale scale);
yamaguch 0:7d4712fa571d 90
yamaguch 0:7d4712fa571d 91 /* Function: setSleep
yamaguch 0:7d4712fa571d 92 * activate sleep mode
yamaguch 0:7d4712fa571d 93 *
yamaguch 0:7d4712fa571d 94 * Variables:
yamaguch 0:7d4712fa571d 95 * on - true to activate sleep mode, false to resume normal operation
yamaguch 0:7d4712fa571d 96 */
yamaguch 0:7d4712fa571d 97 void setSleep(bool on);
yamaguch 0:7d4712fa571d 98
yamaguch 0:7d4712fa571d 99 private:
yamaguch 0:7d4712fa571d 100 AnalogIn xout;
yamaguch 0:7d4712fa571d 101 AnalogIn yout;
yamaguch 0:7d4712fa571d 102 AnalogIn zout;
yamaguch 0:7d4712fa571d 103 DigitalOut gs1;
yamaguch 0:7d4712fa571d 104 DigitalOut gs2;
yamaguch 0:7d4712fa571d 105 DigitalOut sleep;
yamaguch 0:7d4712fa571d 106 float scale;
yamaguch 0:7d4712fa571d 107 };
yamaguch 0:7d4712fa571d 108
yamaguch 0:7d4712fa571d 109 #endif