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

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers L3G4200D.h Source File

L3G4200D.h

00001 #ifndef L3G4200D_H
00002 #define L3G4200D_H
00003 
00004 #include "mbed.h"
00005 
00006 // Enderecos dos registradores
00007 #define WHO_AM_I        0x0F
00008 #define CTRL_REG1        0x20
00009 #define CTRL_REG2        0x21
00010 #define CTRL_REG3        0x22
00011 #define CTRL_REG4        0x23
00012 #define CTRL_REG5        0x24
00013 #define REFERENCE        0x25
00014 #define OUT_TEMP        0x26
00015 #define STATUS_REG        0x27
00016 #define OUT_X_L            0x28
00017 #define OUT_X_H            0x29
00018 #define OUT_Y_L            0x2A
00019 #define OUT_Y_H            0x2B
00020 #define OUT_Z_L            0x2C
00021 #define OUT_Z_H            0x2D
00022 #define FIFO_CTRL_REG    0x2E
00023 #define FIFO_SRC_REG    0x2F
00024 #define INT1_CFG        0x30
00025 #define INT1_SRC        0x31
00026 #define INT1_TSH_XH        0x32
00027 #define INT1_TSH_XL        0x33
00028 #define INT1_TSH_YH        0x34
00029 #define INT1_TSH_YL        0x35
00030 #define INT1_TSH_ZH        0x36
00031 #define INT1_TSH_ZL        0x37
00032 #define INT1_DURATION    0x38
00033 
00034 // Valores utilizados na comunicacao SPI para leitura e escrita
00035 #define L3G4200D_SPI_READ     0x80
00036 #define L3G4200D_SPI_WRITE    0x00
00037 #define L3G4200D_SPI_MULTI    0x60
00038 
00039 // Modos de operacoes
00040 #define POWER_DOWN    0
00041 #define SLEEP        1
00042 #define NORMAL        2 
00043 
00044 class L3G4200D
00045 {
00046     public:
00047         L3G4200D(PinName mosi, PinName miso, PinName sck, PinName cs);
00048         
00049         void setPowerMode(char mode);
00050         
00051         int getWhoAmI();
00052         char getTemperature();
00053         
00054         void getAxes(int* axes);
00055         int getAxisX();
00056         int getAxisY();
00057         int getAxisZ();
00058         float getX();
00059         float getY();
00060         float getZ();
00061         
00062     private:
00063         virtual void getData(int* dataVector, int vectorSize);        
00064         SPI _spi;
00065         DigitalOut _ncs;
00066 
00067         int oneByteRead(int address);
00068         void oneByteWrite(int address, char data);
00069         void multiByteRead(int startAddress, char* buffer, int size);
00070         void multiByteWrite(int startAddress, char* buffer, int size);
00071         
00072 };
00073 
00074 #endif /* L3G4200D_H */