Esta versión v6 pasa a ser el nuevo master. Funciona correctamente

Dependencies:   ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BMA180.h Source File

BMA180.h

00001 /**
00002  * @author Jose L. Escalona (virtualmech)
00003  */
00004 
00005 #ifndef BMA180_H
00006 #define BMA180_H
00007  
00008 #include "mbed.h"
00009 
00010 #define BMA180_ID       0x00
00011 #define VERSION         0x01
00012 #define ACCXLSB         0x02
00013 #define ACCXMSB         0x03
00014 #define ACCYLSB         0x04
00015 #define ACCYMSB         0x05
00016 #define ACCZLSB         0x06
00017 #define ACCZMSB         0x07
00018 #define CTRL_REG0       0x0D
00019 #define DIS_I2C         0x27    // bit 0 must be 1 for SPI
00020 #define CTRL_REG3       0x21    // bit 1= new_data_int
00021 #define RESET           0x10    // soft reset
00022 
00023 #define RANGE           0x35
00024 #define FILTER_BW       0x20
00025 #define NOISE_POWER     0x30
00026 
00027 /*-------------Hardware connections-------------
00028 VIO----- mbed Vout (3.3 Volt)
00029 SDI----- mbed mosi (p5)
00030 SDO----- mbed miso (p6)
00031 SCK----- mbed sck  (p7)
00032 CS------ mbed (p8)          // chip select
00033 (Interrupts not used)   INT----- mbed (p9)          // MBA give a interrupt when ready
00034 GND----- mbed GND (0 Volt)
00035 VDO----- mbed Vout (3.3 Volt)
00036 there are no additional external components used
00037 //----------------------------------------------*/
00038 
00039 /**
00040  * BMA180 triple axis, digital interface, accelerometer.
00041  */
00042 class BMA180 {
00043 
00044 public:
00045     /**
00046      * Constructor.
00047      *
00048      * @param mosi mbed pin to use for MOSI line of SPI interface.
00049      * @param miso mbed pin to use for MISO line of SPI interface.
00050      * @param sck mbed pin to use for SCK line of SPI interface.
00051      * @param cs mbed pin to use for not chip select line of SPI interface.
00052      */
00053     BMA180(PinName mosi, PinName miso, PinName sck, PinName cs);
00054     
00055     void soft_reset(void);
00056 
00057     void new_data(void);
00058     void write_bits(char u);
00059     void write_reg(uint8_t address, char data);
00060     char read_reg(uint8_t address);
00061     void disable_int(void);
00062 
00063     void ReadAccels_BMA180(int*);
00064     
00065     //OJO, NO ESTOY SEGURO DE QUE ESTA FUNCION ESTÉ BIEN IMPLEMENTADA
00066     void AcelerometroSleep(void);                    //Pone el acelerometro en sleep mode para no consumir energía
00067     //OJO, NO ESTOY SEGURO DE QUE ESTA FUNCION ESTÉ BIEN IMPLEMENTADA
00068     void AcelerometroWakeUp(void);                   //Pone el acelerometro preparado para medir
00069     void AcelerometroLeeOffsets(int *);              //Lee los valores de los 3 offsets: x, y, z 
00070     void AcelerometroEscribeOffsets (char *);         //Escribe los valores de los 3 offsets: x, y, z  
00071     
00072     private:
00073 
00074     SPI        spi_;
00075     DigitalOut nCS_;
00076 
00077 };
00078 
00079 #endif /* BMA180_H */