For D

Dependents:   PWM_2_way_level-r1 StepLogger-Serial

Committer:
tim_b
Date:
Mon Jun 09 18:09:51 2014 +0000
Revision:
2:34878ff9bbd7
Parent:
1:c6db5b21ad79
2014-06-09; Same as before

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim_b 0:7bc6b6007ed1 1 #ifndef MMA8451Q_tb_H
tim_b 0:7bc6b6007ed1 2 #define MMA8451Q_tb_H
tim_b 0:7bc6b6007ed1 3
tim_b 0:7bc6b6007ed1 4 #include "mbed.h"
tim_b 0:7bc6b6007ed1 5
tim_b 0:7bc6b6007ed1 6 class MMA8451Q
tim_b 0:7bc6b6007ed1 7 {
tim_b 0:7bc6b6007ed1 8 public:
tim_b 0:7bc6b6007ed1 9 /**
tim_b 0:7bc6b6007ed1 10 * MMA8451Q constructor
tim_b 0:7bc6b6007ed1 11 *
tim_b 0:7bc6b6007ed1 12 * @param sda SDA pin
tim_b 0:7bc6b6007ed1 13 * @param sdl SCL pin
tim_b 0:7bc6b6007ed1 14 * @param addr addr of the I2C peripheral
tim_b 0:7bc6b6007ed1 15 */
tim_b 0:7bc6b6007ed1 16 MMA8451Q(PinName sda, PinName scl, int addr);
tim_b 0:7bc6b6007ed1 17
tim_b 0:7bc6b6007ed1 18 /**
tim_b 0:7bc6b6007ed1 19 * MMA8451Q destructor
tim_b 0:7bc6b6007ed1 20 */
tim_b 0:7bc6b6007ed1 21 ~MMA8451Q();
tim_b 0:7bc6b6007ed1 22
tim_b 0:7bc6b6007ed1 23 /**
tim_b 0:7bc6b6007ed1 24 * Get the value of the WHO_AM_I register
tim_b 0:7bc6b6007ed1 25 *
tim_b 0:7bc6b6007ed1 26 * @returns WHO_AM_I value
tim_b 0:7bc6b6007ed1 27 */
tim_b 0:7bc6b6007ed1 28 uint8_t getWhoAmI();
tim_b 0:7bc6b6007ed1 29
tim_b 0:7bc6b6007ed1 30 /**
tim_b 0:7bc6b6007ed1 31 * Get X axis acceleration
tim_b 0:7bc6b6007ed1 32 *
tim_b 0:7bc6b6007ed1 33 * @returns X axis acceleration
tim_b 0:7bc6b6007ed1 34 */
tim_b 0:7bc6b6007ed1 35 float getAccX();
tim_b 0:7bc6b6007ed1 36
tim_b 0:7bc6b6007ed1 37 /**
tim_b 0:7bc6b6007ed1 38 * Get Y axis acceleration
tim_b 0:7bc6b6007ed1 39 *
tim_b 0:7bc6b6007ed1 40 * @returns Y axis acceleration
tim_b 0:7bc6b6007ed1 41 */
tim_b 0:7bc6b6007ed1 42 float getAccY();
tim_b 0:7bc6b6007ed1 43
tim_b 0:7bc6b6007ed1 44 /**
tim_b 0:7bc6b6007ed1 45 * Get Z axis acceleration
tim_b 0:7bc6b6007ed1 46 *
tim_b 0:7bc6b6007ed1 47 * @returns Z axis acceleration
tim_b 0:7bc6b6007ed1 48 */
tim_b 0:7bc6b6007ed1 49 float getAccZ();
tim_b 0:7bc6b6007ed1 50
tim_b 0:7bc6b6007ed1 51 /**
tim_b 0:7bc6b6007ed1 52 * Get XYZ axis acceleration
tim_b 0:7bc6b6007ed1 53 *
tim_b 0:7bc6b6007ed1 54 * @param res array where acceleration data will be stored
tim_b 0:7bc6b6007ed1 55 */
tim_b 0:7bc6b6007ed1 56 void getAccAllAxis(float * res);
tim_b 0:7bc6b6007ed1 57
tim_b 1:c6db5b21ad79 58 // Get all axis in one read of all six registers (x,y,z MSB and LSB)
tim_b 2:34878ff9bbd7 59 // Takes a pointer to a 3 member array
tim_b 1:c6db5b21ad79 60 void fastRead(float * acc_arr);
tim_b 1:c6db5b21ad79 61
tim_b 0:7bc6b6007ed1 62 void readRegs(int addr, uint8_t * data, int len);
tim_b 0:7bc6b6007ed1 63 void writeRegs(uint8_t * data, int len);
tim_b 0:7bc6b6007ed1 64 int16_t getAccAxis(uint8_t addr);
tim_b 0:7bc6b6007ed1 65
tim_b 0:7bc6b6007ed1 66 private:
tim_b 0:7bc6b6007ed1 67 I2C m_i2c;
tim_b 0:7bc6b6007ed1 68 int m_addr;
tim_b 0:7bc6b6007ed1 69
tim_b 0:7bc6b6007ed1 70
tim_b 0:7bc6b6007ed1 71 };
tim_b 0:7bc6b6007ed1 72
tim_b 0:7bc6b6007ed1 73 #endif