Esta versión v6 pasa a ser el nuevo master. Funciona correctamente
Dependencies: ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem
BMA180.h@0:a5367bd4e404, 2014-05-20 (annotated)
- Committer:
- jjmedina
- Date:
- Tue May 20 15:11:16 2014 +0000
- Revision:
- 0:a5367bd4e404
Copia master que funciona. Ha habido una confusi?n entre las versiones 4 y 5 y, con ?sta, se solucoina.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jjmedina | 0:a5367bd4e404 | 1 | /** |
jjmedina | 0:a5367bd4e404 | 2 | * @author Jose L. Escalona (virtualmech) |
jjmedina | 0:a5367bd4e404 | 3 | */ |
jjmedina | 0:a5367bd4e404 | 4 | |
jjmedina | 0:a5367bd4e404 | 5 | #ifndef BMA180_H |
jjmedina | 0:a5367bd4e404 | 6 | #define BMA180_H |
jjmedina | 0:a5367bd4e404 | 7 | |
jjmedina | 0:a5367bd4e404 | 8 | #include "mbed.h" |
jjmedina | 0:a5367bd4e404 | 9 | |
jjmedina | 0:a5367bd4e404 | 10 | #define BMA180_ID 0x00 |
jjmedina | 0:a5367bd4e404 | 11 | #define VERSION 0x01 |
jjmedina | 0:a5367bd4e404 | 12 | #define ACCXLSB 0x02 |
jjmedina | 0:a5367bd4e404 | 13 | #define ACCXMSB 0x03 |
jjmedina | 0:a5367bd4e404 | 14 | #define ACCYLSB 0x04 |
jjmedina | 0:a5367bd4e404 | 15 | #define ACCYMSB 0x05 |
jjmedina | 0:a5367bd4e404 | 16 | #define ACCZLSB 0x06 |
jjmedina | 0:a5367bd4e404 | 17 | #define ACCZMSB 0x07 |
jjmedina | 0:a5367bd4e404 | 18 | #define CTRL_REG0 0x0D |
jjmedina | 0:a5367bd4e404 | 19 | #define DIS_I2C 0x27 // bit 0 must be 1 for SPI |
jjmedina | 0:a5367bd4e404 | 20 | #define CTRL_REG3 0x21 // bit 1= new_data_int |
jjmedina | 0:a5367bd4e404 | 21 | #define RESET 0x10 // soft reset |
jjmedina | 0:a5367bd4e404 | 22 | |
jjmedina | 0:a5367bd4e404 | 23 | #define RANGE 0x35 |
jjmedina | 0:a5367bd4e404 | 24 | #define FILTER_BW 0x20 |
jjmedina | 0:a5367bd4e404 | 25 | #define NOISE_POWER 0x30 |
jjmedina | 0:a5367bd4e404 | 26 | |
jjmedina | 0:a5367bd4e404 | 27 | /*-------------Hardware connections------------- |
jjmedina | 0:a5367bd4e404 | 28 | VIO----- mbed Vout (3.3 Volt) |
jjmedina | 0:a5367bd4e404 | 29 | SDI----- mbed mosi (p5) |
jjmedina | 0:a5367bd4e404 | 30 | SDO----- mbed miso (p6) |
jjmedina | 0:a5367bd4e404 | 31 | SCK----- mbed sck (p7) |
jjmedina | 0:a5367bd4e404 | 32 | CS------ mbed (p8) // chip select |
jjmedina | 0:a5367bd4e404 | 33 | (Interrupts not used) INT----- mbed (p9) // MBA give a interrupt when ready |
jjmedina | 0:a5367bd4e404 | 34 | GND----- mbed GND (0 Volt) |
jjmedina | 0:a5367bd4e404 | 35 | VDO----- mbed Vout (3.3 Volt) |
jjmedina | 0:a5367bd4e404 | 36 | there are no additional external components used |
jjmedina | 0:a5367bd4e404 | 37 | //----------------------------------------------*/ |
jjmedina | 0:a5367bd4e404 | 38 | |
jjmedina | 0:a5367bd4e404 | 39 | /** |
jjmedina | 0:a5367bd4e404 | 40 | * BMA180 triple axis, digital interface, accelerometer. |
jjmedina | 0:a5367bd4e404 | 41 | */ |
jjmedina | 0:a5367bd4e404 | 42 | class BMA180 { |
jjmedina | 0:a5367bd4e404 | 43 | |
jjmedina | 0:a5367bd4e404 | 44 | public: |
jjmedina | 0:a5367bd4e404 | 45 | /** |
jjmedina | 0:a5367bd4e404 | 46 | * Constructor. |
jjmedina | 0:a5367bd4e404 | 47 | * |
jjmedina | 0:a5367bd4e404 | 48 | * @param mosi mbed pin to use for MOSI line of SPI interface. |
jjmedina | 0:a5367bd4e404 | 49 | * @param miso mbed pin to use for MISO line of SPI interface. |
jjmedina | 0:a5367bd4e404 | 50 | * @param sck mbed pin to use for SCK line of SPI interface. |
jjmedina | 0:a5367bd4e404 | 51 | * @param cs mbed pin to use for not chip select line of SPI interface. |
jjmedina | 0:a5367bd4e404 | 52 | */ |
jjmedina | 0:a5367bd4e404 | 53 | BMA180(PinName mosi, PinName miso, PinName sck, PinName cs); |
jjmedina | 0:a5367bd4e404 | 54 | |
jjmedina | 0:a5367bd4e404 | 55 | void soft_reset(void); |
jjmedina | 0:a5367bd4e404 | 56 | |
jjmedina | 0:a5367bd4e404 | 57 | void new_data(void); |
jjmedina | 0:a5367bd4e404 | 58 | void write_bits(char u); |
jjmedina | 0:a5367bd4e404 | 59 | void write_reg(uint8_t address, char data); |
jjmedina | 0:a5367bd4e404 | 60 | char read_reg(uint8_t address); |
jjmedina | 0:a5367bd4e404 | 61 | void disable_int(void); |
jjmedina | 0:a5367bd4e404 | 62 | |
jjmedina | 0:a5367bd4e404 | 63 | void ReadAccels_BMA180(int*); |
jjmedina | 0:a5367bd4e404 | 64 | |
jjmedina | 0:a5367bd4e404 | 65 | //OJO, NO ESTOY SEGURO DE QUE ESTA FUNCION ESTÉ BIEN IMPLEMENTADA |
jjmedina | 0:a5367bd4e404 | 66 | void AcelerometroSleep(void); //Pone el acelerometro en sleep mode para no consumir energía |
jjmedina | 0:a5367bd4e404 | 67 | //OJO, NO ESTOY SEGURO DE QUE ESTA FUNCION ESTÉ BIEN IMPLEMENTADA |
jjmedina | 0:a5367bd4e404 | 68 | void AcelerometroWakeUp(void); //Pone el acelerometro preparado para medir |
jjmedina | 0:a5367bd4e404 | 69 | void AcelerometroLeeOffsets(int *); //Lee los valores de los 3 offsets: x, y, z |
jjmedina | 0:a5367bd4e404 | 70 | void AcelerometroEscribeOffsets(char *); //Escribe los valores de los 3 offsets: x, y, z |
jjmedina | 0:a5367bd4e404 | 71 | |
jjmedina | 0:a5367bd4e404 | 72 | private: |
jjmedina | 0:a5367bd4e404 | 73 | |
jjmedina | 0:a5367bd4e404 | 74 | SPI spi_; |
jjmedina | 0:a5367bd4e404 | 75 | DigitalOut nCS_; |
jjmedina | 0:a5367bd4e404 | 76 | |
jjmedina | 0:a5367bd4e404 | 77 | }; |
jjmedina | 0:a5367bd4e404 | 78 | |
jjmedina | 0:a5367bd4e404 | 79 | #endif /* BMA180_H */ |