StepOne / Mbed 2 deprecated StepOne (store accelerometer value)

Dependencies:   I2C_FUNCTION LSM6DS0 MAX30100 mbed BLE_API

Committer:
ajeje41
Date:
Sun Apr 03 13:43:54 2016 +0000
Revision:
0:285a4bb14ae3
Child:
2:4cac3109599d
StepOne (store accelerometer value)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ajeje41 0:285a4bb14ae3 1 #include "mbed.h"
ajeje41 0:285a4bb14ae3 2 #include "functions.h"
ajeje41 0:285a4bb14ae3 3 #include "lsm6ds0.h"
ajeje41 0:285a4bb14ae3 4
ajeje41 0:285a4bb14ae3 5 static Serial pc(SERIAL_TX, SERIAL_RX);
ajeje41 0:285a4bb14ae3 6
ajeje41 0:285a4bb14ae3 7 InterruptIn LSM6DS0_int(D4);
ajeje41 0:285a4bb14ae3 8 DigitalOut led(LED1);
ajeje41 0:285a4bb14ae3 9 LSM6DS0 *gyro_accel;
ajeje41 0:285a4bb14ae3 10 xl_output data_FIFO[FIFO_length_by_five];
ajeje41 0:285a4bb14ae3 11 int offset;
ajeje41 0:285a4bb14ae3 12
ajeje41 0:285a4bb14ae3 13 char data_read[192];
ajeje41 0:285a4bb14ae3 14
ajeje41 0:285a4bb14ae3 15 void get_data() {
ajeje41 0:285a4bb14ae3 16 LSM6DS0_int.disable_irq(); //Disable IRQ interrupt
ajeje41 0:285a4bb14ae3 17 led = !led; //Blink led
ajeje41 0:285a4bb14ae3 18 gyro_accel->storeFIFO(&offset, data_FIFO); //Store the data from FIFO to data_FIFO variable
ajeje41 0:285a4bb14ae3 19 LSM6DS0_int.enable_irq(); //Re-enable IRQ interrupt
ajeje41 0:285a4bb14ae3 20 }
ajeje41 0:285a4bb14ae3 21
ajeje41 0:285a4bb14ae3 22 int main()
ajeje41 0:285a4bb14ae3 23 {
ajeje41 0:285a4bb14ae3 24 LSM6DS0_ACC_ODR_t odr;
ajeje41 0:285a4bb14ae3 25 LSM6DS0_ACC_HR_t high_res;
ajeje41 0:285a4bb14ae3 26 LSM6DS0_FIFO_mode_t work_mode;
ajeje41 0:285a4bb14ae3 27
ajeje41 0:285a4bb14ae3 28 offset = 0; //Offset in the data_FIFO vector. It is useful to store the FIFO value in the data_FIFO vector without overwritting (after 5 FIFO value the data_FIFO vector has been overwritten)
ajeje41 0:285a4bb14ae3 29 odr = LSM6DS0_ACC_ODR_50Hz ;
ajeje41 0:285a4bb14ae3 30 high_res = LSM6DS0_ACC_HR_Disabled;
ajeje41 0:285a4bb14ae3 31 work_mode = LSM6DS0_FIFO_mode_CONTINUOUS;
ajeje41 0:285a4bb14ae3 32
ajeje41 0:285a4bb14ae3 33 LSM6DS0_int.rise(&get_data); //LSM6DS0's interrupt initializzation
ajeje41 0:285a4bb14ae3 34 gyro_accel->LSM6DS0_reset(); //LSM6DS0 reset
ajeje41 0:285a4bb14ae3 35 gyro_accel->Init(odr, high_res, work_mode); //LSM6DS0 initializzation
ajeje41 0:285a4bb14ae3 36
ajeje41 0:285a4bb14ae3 37 while(1)
ajeje41 0:285a4bb14ae3 38 {
ajeje41 0:285a4bb14ae3 39 wait(5);
ajeje41 0:285a4bb14ae3 40 pc.printf("\n\r#################################\n\r");
ajeje41 0:285a4bb14ae3 41 gyro_accel->computeValue(data_FIFO);
ajeje41 0:285a4bb14ae3 42 }
ajeje41 0:285a4bb14ae3 43 }