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

Dependencies:   ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem

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?

UserRevisionLine numberNew 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 */