José Claudio / Mbed 2 deprecated QuadCopter-Sensor-Serial

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ADXL345.h Source File

ADXL345.h

00001 #ifndef ADXL345_H
00002 #define ADXL345_H
00003 
00004 #include "mbed.h"
00005 
00006 #define ADXL345_DEVID_REG          0x00
00007 #define ADXL345_THRESH_TAP_REG     0x1D
00008 #define ADXL345_OFSX_REG           0x1E
00009 #define ADXL345_OFSY_REG           0x1F
00010 #define ADXL345_OFSZ_REG           0x20
00011 #define ADXL345_DUR_REG            0x21
00012 #define ADXL345_LATENT_REG         0x22
00013 #define ADXL345_WINDOW_REG         0x23
00014 #define ADXL345_THRESH_ACT_REG     0x24
00015 #define ADXL345_THRESH_INACT_REG   0x25
00016 #define ADXL345_TIME_INACT_REG     0x26
00017 #define ADXL345_ACT_INACT_CTL_REG  0x27
00018 #define ADXL345_THRESH_FF_REG      0x28
00019 #define ADXL345_TIME_FF_REG        0x29
00020 #define ADXL345_TAP_AXES_REG       0x2A
00021 #define ADXL345_ACT_TAP_STATUS_REG 0x2B
00022 #define ADXL345_BW_RATE_REG        0x2C
00023 #define ADXL345_POWER_CTL_REG      0x2D
00024 #define ADXL345_INT_ENABLE_REG     0x2E
00025 #define ADXL345_INT_MAP_REG        0x2F
00026 #define ADXL345_INT_SOURCE_REG     0x30
00027 #define ADXL345_DATA_FORMAT_REG    0x31
00028 #define ADXL345_DATAX0_REG         0x32
00029 #define ADXL345_DATAX1_REG         0x33
00030 #define ADXL345_DATAY0_REG         0x34
00031 #define ADXL345_DATAY1_REG         0x35
00032 #define ADXL345_DATAZ0_REG         0x36
00033 #define ADXL345_DATAZ1_REG         0x37
00034 #define ADXL345_FIFO_CTL           0x38
00035 #define ADXL345_FIFO_STATUS        0x39
00036 
00037 //Data rate codes.
00038 #define ADXL345_3200HZ      0x0F
00039 #define ADXL345_1600HZ      0x0E
00040 #define ADXL345_800HZ       0x0D
00041 #define ADXL345_400HZ       0x0C
00042 #define ADXL345_200HZ       0x0B
00043 #define ADXL345_100HZ       0x0A
00044 #define ADXL345_50HZ        0x09
00045 #define ADXL345_25HZ        0x08
00046 #define ADXL345_12HZ5       0x07
00047 #define ADXL345_6HZ25       0x06
00048 
00049 #define ADXL345_SPI_READ    0x80
00050 #define ADXL345_SPI_WRITE   0x00
00051 #define ADXL345_MULTI_BYTE  0x60
00052 
00053 #define ADXL345_X           0x00
00054 #define ADXL345_Y           0x01
00055 #define ADXL345_Z           0x02
00056 
00057 class ADXL345
00058 {
00059     public:
00060         ADXL345(PinName mosi, PinName miso, PinName sck, PinName cs);
00061         
00062         void setDataRate(int dataRate);
00063         void getAxes(int* axes);
00064         
00065         float getX();
00066         float getY();
00067         float getZ();
00068         
00069     private:
00070         virtual void getData(int* dataVector, int vectorSize);
00071         SPI _spi;
00072         DigitalOut _ncs;
00073 
00074         int oneByteRead(int address);
00075         void oneByteWrite(int address, char data);
00076         void multiByteRead(int startAddress, char* buffer, int size);
00077         void multiByteWrite(int startAddress, char* buffer, int size);
00078         
00079 };
00080 
00081 #endif