Hexiwear heart rate sensor demo
Fork of Hexi_Accelero_Magneto_Example by
Diff: main.cpp
- Revision:
- 2:f9c24c129575
- Parent:
- 1:6da908234299
- Child:
- 3:9f60cb7455c4
--- a/main.cpp Sat Aug 13 15:59:34 2016 +0000 +++ b/main.cpp Mon Aug 15 23:22:48 2016 +0000 @@ -1,31 +1,46 @@ #include "mbed.h" -#include "FXOS8700CQ.h" +#include "FXOS8700.h" -/* Check out the full featured example application for interfacing to the - * Accelerometer/Magnetometer device at the following URL - * https://developer.mbed.org/users/trm/code/fxos8700cq_example/ -*/ +// Check out the full featured example application for interfacing to the +// Accelerometer/Magnetometer device at the following URL +// https://developer.mbed.org/users/trm/code/fxos8700cq_example/ -DigitalOut led1(LED1); +DigitalOut led1(LED_GREEN); + +// Initialize Serial port +Serial pc(USBTX, USBRX); // Pin connections & address for Hexiwear -FXOS8700CQ fxos(PTC11, PTC10, FXOS8700CQ_SLAVE_ADDR0); // SDA, SCL, (addr << 1) -// Storage for the data from the sensor -SRAWDATA accel_data; -SRAWDATA magn_data; +FXOS8700 accel(PTC11, PTC10); +FXOS8700 mag(PTC11, PTC10); // main() runs in its own thread in the OS // (note the calls to Thread::wait below for delays) int main() { - fxos.enable(); - while (true) { + // Configure Accelerometer FXOS8700, Magnetometer FXOS8700 + accel.accel_config(); + mag.mag_config(); + + float accel_data[3]; float accel_rms=0.0; + float mag_data[3]; float mag_rms=0.0; + + printf("Begin Data Acquisition from FXOS8700 and FXAS21002....\r\n\r\n"); + wait(0.5); + + while (1) { led1 = !led1; // Example data printing - fxos.get_data(&accel_data, &magn_data); - printf("A X:%5d,Y:%5d,Z:%5d M X:%5d,Y:%5d,Z:%5d\r\n", - accel_data.x, accel_data.y, accel_data.z, - magn_data.x, magn_data.y, magn_data.z); + + accel.acquire_accel_data_g(accel_data); + accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3); + printf("Accelerometer \tX-Axis %4.2f \tY-Axis %4.2f \tZ-Axis %4.2f \tRMS %4.2f\n\r",accel_data[0],accel_data[1],accel_data[2],accel_rms); + wait(0.01); + + mag.acquire_mag_data_uT(mag_data); + mag_rms = sqrt(((mag_data[0]*mag_data[0])+(mag_data[1]*mag_data[1])+(mag_data[2]*mag_data[2]))/3); + printf("Magnetometer \tX-Axis %4.2f \tY-Axis %4.2f \tZ-Axis %4.2f \tRMS %4.2f\n\n\r",mag_data[0],mag_data[1],mag_data[2],mag_rms); + wait(0.01); Thread::wait(500); }