Projet S5 Info / Mbed 2 deprecated Projet_S5

Dependencies:   mbed PowerControl

Fork of Projet_S5 by Jonathan Tousignant

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers accelerometer.h Source File

accelerometer.h

Go to the documentation of this file.
00001 /*!
00002  *  \file accelerometer.h
00003  *  \brief Class that define a accelerometer in C and C++
00004  *  \author Equipe P02
00005  *  \version 1.0
00006  *  \date 14/03/2014
00007  */
00008 
00009 #ifndef ACCELERATOR_H
00010 #define ACCELERATOR_H
00011 
00012 #include "mbed.h"
00013 
00014 /******************************************************** 
00015 * DEFINES 
00016 ********************************************************/ 
00017   
00018 #define DELAY           0.5 
00019   
00020 #define MMA8452_WRITE_ADDRESS 0x3A 
00021 #define MMA8452_READ_ADDRESS  0x3B 
00022 #define WHO_AM_I        0x0D 
00023 #define OUT_X_MSB       0x01 
00024 #define OUT_X_LSB       0x02 
00025 #define OUT_Y_MSB       0x03 
00026 #define OUT_Y_LSB       0x04 
00027 #define OUT_Z_MSB       0x05 
00028 #define OUT_Z_LSB       0x06 
00029 #define CTRL_REG1       0x2A  
00030 #define CTRL_REG2       0x2B 
00031 #define XYZ_DATA_CFG    0x0E 
00032 
00033 /*! 
00034  *  \class Accelerometer acceleromter.h "accelerometer.h"
00035  *  \brief Class that define a accelerometer
00036  *
00037  *  Class in C++ to activate en read information of accelerometer
00038  */
00039 class Accelerometer
00040 {
00041 public:
00042 
00043     /*!
00044      *  \brief Constructor
00045      */
00046     Accelerometer();
00047     
00048     /*!
00049      *  \brief Destructor
00050      */
00051     ~Accelerometer();
00052     
00053     /*!
00054     *   \brief Read data of the accelerometer
00055     *   \return Array of axe x, y, z in signed char
00056     */
00057     signed char* getAccelValue();
00058     
00059 private:
00060 
00061     /*!
00062     *   \brief Write data in a specific register
00063     * 
00064     *   \param address Address to write
00065     *   \param startingRegister Starting address to write
00066     *   \param data2Write Data to write
00067     */
00068     void writeToRegister(int address, int startingRegister, int data2Write);
00069     
00070     /*!
00071     *   \brief Read register
00072     * 
00073     *   \param address Address to read
00074     *   \return The value read
00075     */
00076     char readRegister(char address);
00077     
00078     /*!
00079     *   \brief Initialise Accelerometer
00080     *
00081     *   \return True if initialition ok
00082     */
00083     bool initAccel();
00084     
00085     I2C i2c; /*!< I2C port (sda, scl) */
00086 };
00087 
00088 // Define function in C for interruption
00089 // The C function call C++ function
00090 #ifdef __cplusplus
00091 extern "C" {
00092 #endif
00093 
00094 extern void *Accelerometer_C_new (); /*!< Call Constructor \see Accelerometer() */
00095 extern void  Accelerometer_C_delete (void *accelerometer); /*!< Call Destructor \see ~Accelerometer() */
00096 extern signed char* Accelerometer_C_getAccelValue (void *accelerometer); /*!< Call getAccelValue \see getAccelValue() */
00097 
00098 #ifdef __cplusplus
00099 }
00100 #endif
00101     
00102 #endif