ok

Dependencies:   MMA8451Q

Fork of MMA8451Q by Emilio Monti

Files at this revision

API Documentation at this revision

Comitter:
baga1
Date:
Sun Dec 18 18:47:41 2016 +0000
Parent:
4:c4d879a39775
Commit message:
fall interrupt

Changed in this revision

MMA8451Q.cpp Show diff for this revision Revisions of this file
MMA8451Q.h Show diff for this revision Revisions of this file
MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
diff -r c4d879a39775 -r 6f45291c74e1 MMA8451Q.cpp
--- a/MMA8451Q.cpp	Fri Oct 12 11:35:07 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#include "MMA8451Q.h"
-
-#define REG_WHO_AM_I      0x0D
-#define REG_CTRL_REG_1    0x2A
-#define REG_OUT_X_MSB     0x01
-#define REG_OUT_Y_MSB     0x03
-#define REG_OUT_Z_MSB     0x05
-
-#define UINT14_MAX        16383
-
-MMA8451Q::MMA8451Q(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {
-    // activate the peripheral
-    uint8_t data[2] = {REG_CTRL_REG_1, 0x01};
-    writeRegs(data, 2);
-}
-
-MMA8451Q::~MMA8451Q() { }
-
-uint8_t MMA8451Q::getWhoAmI() {
-    uint8_t who_am_i = 0;
-    readRegs(REG_WHO_AM_I, &who_am_i, 1);
-    return who_am_i;
-}
-
-float MMA8451Q::getAccX() {
-    return (float(getAccAxis(REG_OUT_X_MSB))/4096.0);
-}
-
-float MMA8451Q::getAccY() {
-    return (float(getAccAxis(REG_OUT_Y_MSB))/4096.0);
-}
-
-float MMA8451Q::getAccZ() {
-    return (float(getAccAxis(REG_OUT_Z_MSB))/4096.0);
-}
-
-void MMA8451Q::getAccAllAxis(float * res) {
-    res[0] = getAccX();
-    res[1] = getAccY();
-    res[2] = getAccZ();
-}
-
-int16_t MMA8451Q::getAccAxis(uint8_t addr) {
-    int16_t acc;
-    uint8_t res[2];
-    readRegs(addr, res, 2);
-
-    acc = (res[0] << 6) | (res[1] >> 2);
-    if (acc > UINT14_MAX/2)
-        acc -= UINT14_MAX;
-
-    return acc;
-}
-
-void MMA8451Q::readRegs(int addr, uint8_t * data, int len) {
-    char t[1] = {addr};
-    m_i2c.write(m_addr, t, 1, true);
-    m_i2c.read(m_addr, (char *)data, len);
-}
-
-void MMA8451Q::writeRegs(uint8_t * data, int len) {
-    m_i2c.write(m_addr, (char *)data, len);
-}
diff -r c4d879a39775 -r 6f45291c74e1 MMA8451Q.h
--- a/MMA8451Q.h	Fri Oct 12 11:35:07 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#ifndef MMA8451Q_H
-#define MMA8451Q_H
-
-#include "mbed.h"
-
-/**
-* MMA8451Q accelerometer example
-*
-* @code
-* #include "mbed.h"
-* #include "MMA8451Q.h"
-* 
-* #define MMA8451_I2C_ADDRESS (0x1d<<1)
-* 
-* int main(void) {
-* 
-* MMA8451Q acc(P_E25, P_E24, MMA8451_I2C_ADDRESS);
-* PwmOut rled(LED_RED);
-* PwmOut gled(LED_GREEN);
-* PwmOut bled(LED_BLUE);
-* 
-*     while (true) {       
-*         rled = 1.0 - abs(acc.getAccX());
-*         gled = 1.0 - abs(acc.getAccY());
-*         bled = 1.0 - abs(acc.getAccZ());
-*         wait(0.1);
-*     }
-* }
-* @endcode
-*/
-class MMA8451Q
-{
-public:
-  /**
-  * MMA8451Q constructor
-  *
-  * @param sda SDA pin
-  * @param sdl SCL pin
-  * @param addr addr of the I2C peripheral
-  */
-  MMA8451Q(PinName sda, PinName scl, int addr);
-
-  /**
-  * MMA8451Q destructor
-  */
-  ~MMA8451Q();
-
-  /**
-   * Get the value of the WHO_AM_I register
-   *
-   * @returns WHO_AM_I value
-   */
-  uint8_t getWhoAmI();
-
-  /**
-   * Get X axis acceleration
-   *
-   * @returns X axis acceleration
-   */
-  float getAccX();
-
-  /**
-   * Get Y axis acceleration
-   *
-   * @returns Y axis acceleration
-   */
-  float getAccY();
-
-  /**
-   * Get Z axis acceleration
-   *
-   * @returns Z axis acceleration
-   */
-  float getAccZ();
-
-  /**
-   * Get XYZ axis acceleration
-   *
-   * @param res array where acceleration data will be stored
-   */
-  void getAccAllAxis(float * res);
-
-private:
-  I2C m_i2c;
-  int m_addr;
-  void readRegs(int addr, uint8_t * data, int len);
-  void writeRegs(uint8_t * data, int len);
-  int16_t getAccAxis(uint8_t addr);
-
-};
-
-#endif
diff -r c4d879a39775 -r 6f45291c74e1 MMA8451Q.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA8451Q.lib	Sun Dec 18 18:47:41 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/JoKer/code/MMA8451Q/#2d14600116fc