Projet S5 Info / Mbed 2 deprecated Projet_S5

Dependencies:   mbed PowerControl

Fork of Projet_S5 by Jonathan Tousignant

accelerometer.h

Committer:
joGenie
Date:
2014-03-26
Revision:
0:d80295a0bcc2
Child:
5:6313ddd0dfdd

File content as of revision 0:d80295a0bcc2:

#ifndef ACCELERATOR_H
#define ACCELERATOR_H

#include "mbed.h"

/******************************************************** 
* DEFINES 
********************************************************/ 
  
#define DELAY           0.5 
  
#define MMA8452_WRITE_ADDRESS 0x3A 
#define MMA8452_READ_ADDRESS  0x3B 
#define WHO_AM_I        0x0D 
#define OUT_X_MSB       0x01 
#define OUT_X_LSB       0x02 
#define OUT_Y_MSB       0x03 
#define OUT_Y_LSB       0x04 
#define OUT_Z_MSB       0x05 
#define OUT_Z_LSB       0x06 
#define CTRL_REG1       0x2A  
#define CTRL_REG2       0x2B 
#define XYZ_DATA_CFG    0x0E 

class Accelerometer
{
public:
    Accelerometer();
    ~Accelerometer();
    
    unsigned short* getAccelValue();
    
private:
    void writeToRegister(int address, int startingRegister, int data2Write);
    int readRegister(int address, int startingRegister);
    char i2c_read_reg(char address);
    bool initAccel();
    
    I2C i2c; // I2C port (sda, scl) 
};

// Define function in C for interruption
#ifdef __cplusplus
extern "C" {
#endif

extern void *Accelerometer_C_new();
extern void  Accelerometer_C_delete(void *accelerometer);
extern unsigned short* Accelerometer_C_getAccelValue(void *accelerometer);

#ifdef __cplusplus
}
#endif
    
#endif