Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: I2C_FUNCTION LSM6DS0 MAX30100 mbed BLE_API
main.cpp@0:285a4bb14ae3, 2016-04-03 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |