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.
Diff: main.cpp
- Revision:
- 2:17d5a74fc2c4
- Parent:
- 1:e4a32b4163f2
- Child:
- 3:a7396ed925e6
--- a/main.cpp Wed Oct 09 09:41:54 2019 +0000 +++ b/main.cpp Wed Oct 09 11:31:00 2019 +0000 @@ -62,7 +62,7 @@ USBSerial usbSerial(0x0b6a, 0x0100, 0x0001, false); // I2C Masters -//I2C i2c1(I2C1_SDA, I2C1_SCL); // used by MAX30205, BMP280 +I2C i2c1(I2C1_SDA, I2C1_SCL); // used by MAX30205, BMP280 I2C i2c2(I2C2_SDA, I2C2_SCL); // used by MAX14720, MAX30101, LIS2DH // SPI Master 0 with SPI0_SS for use with MAX30001 @@ -72,21 +72,21 @@ MAX14720 max14720(&i2c2, MAX14720_I2C_SLAVE_ADDR); // Optical Oximeter -//MAX30101 max30101(&i2c2, MAX30101_I2C_SLAVE_ADDR); -//InterruptIn max30101_Interrupt(P4_0); +MAX30101 max30101(&i2c2, MAX30101_I2C_SLAVE_ADDR); +InterruptIn max30101_Interrupt(P4_0); // Accelerometer -//LIS2DH lis2dh(&i2c2, LIS2DH_I2C_SLAVE_ADDR); -//InterruptIn lis2dh_Interrupt(P4_7); +LIS2DH lis2dh(&i2c2, LIS2DH_I2C_SLAVE_ADDR); +InterruptIn lis2dh_Interrupt(P4_7); // Barometric Pressure Sensor -//BMP280 bmp280_pres(&i2c1, BMP280_I2C_SLAVE_ADDR); +BMP280 bmp280_pres(&i2c1, BMP280_I2C_SLAVE_ADDR); // Top Temperature Sensor -//MAX30205 MAX30205_top(&i2c1, MAX30205_I2C_SLAVE_ADDR_TOP); +MAX30205 MAX30205_top(&i2c1, MAX30205_I2C_SLAVE_ADDR_TOP); // Botttom Temperature Sensor -//MAX30205 MAX30205_bottom(&i2c1, MAX30205_I2C_SLAVE_ADDR_BOTTOM); +MAX30205 MAX30205_bottom(&i2c1, MAX30205_I2C_SLAVE_ADDR_BOTTOM); // ECG device MAX30001 max30001(&spi); @@ -104,12 +104,15 @@ uint32_t index = 0; //Temperature sensor variables -//uint16_t rawTemp_top, rawTemp_bottom; -//float celsius_top, celsius_bottom, fahrenheit_top, fahrenheit_bottom; +uint16_t rawTemp_top, rawTemp_bottom; +float celsius_top, celsius_bottom, fahrenheit_top, fahrenheit_bottom; // Barometric sensor variables -//char bmp280_rawData = 0; -//float Temp_degC, Press_Pa, Press_Bar; +char bmp280_rawData = 0; +float Temp_degC, Press_Pa, Press_Bar; + +// Accelerometer sensor variables +int16_t accel_value[3]; //write the power down command to PMIC void turnOff() { @@ -162,10 +165,18 @@ //max30101.onInterrupt(&MAX30101_OnInterrupt); //max30101.onDataAvailable(&StreamPacketUint32_ex); //max30101_Interrupt.fall(&MAX30101MidIntHandler); - + + // LIS2DH initialize interrupt + //lis2dh.onInterrupt(&MAX30101_OnInterrupt); + //lis2dh.onDataAvailable(&StreamPacketUint32_ex); + //lis2dh_Interrupt.fall(&MAX30101MidIntHandler); + // Initialise the BMP280 //bmp280_pres.init(BMP280::OVERSAMPLING_X16_P, BMP280::OVERSAMPLING_X2_T, BMP280::FILT_4, BMP280::NORMAL_MODE, BMP280::T_62_5); + // LIS2DH initialize interrupt + lis2dh.initStart(LIS2DH_DATARATE_10HZ, LIS2DH_FIFO_SIZE); + // Interrupt priority NVIC_SetPriority(GPIO_P0_IRQn, 5); NVIC_SetPriority(GPIO_P1_IRQn, 5); @@ -234,16 +245,16 @@ //MAX30205_top.readTemperature(&rawTemp_top); //MAX30205_bottom.readTemperature(&rawTemp_bottom); - // Read BMP280 Temp. and Pressure - //bmp280_pres.ReadCompDataRaw(&bmp280_rawData); - //bmp280_pres.ToFloat(&bmp280_rawData, &Temp_degC, &Press_Pa); // Convert to Celsius //celsius_top = MAX30205_top.toCelsius(rawTemp_top); //celsius_bottom = MAX30205_bottom.toCelsius(rawTemp_bottom); // Convert to Fahrenheit //fahrenheit_top = MAX30205_top.toFahrenheit(celsius_top); //fahrenheit_bottom = MAX30205_bottom.toFahrenheit(celsius_bottom); - + + // Read BMP280 Temp. and Pressure + //bmp280_pres.ReadCompDataRaw(&bmp280_rawData); + //bmp280_pres.ToFloat(&bmp280_rawData, &Temp_degC, &Press_Pa); //Press_Bar = Press_Pa / 100000; /* Printing various sensor values */ @@ -252,7 +263,11 @@ //usbSerial.printf("***** BMP280 Barometric Sensor Reading *****\n\r"); //usbSerial.printf("Temp_degC : %.2f , Press_Bar is %.2f , Press_pa is %.2f\n\n\r",Temp_degC, Press_Bar, Press_Pa); - + + lis2dh.get_motion_cached(&accel_value[0], &accel_value[1], &accel_value[2]); + + usbSerial.printf("***** LIS2DH Acclerometer Sensor Reading *****\n\r"); + usbSerial.printf("X-Axis: %d\n\rY-Axis: %d\n\rZ-Axis: %d", &accel_value[0], &accel_value[1], &accel_value[2]); usbSerial.printf("-------------------------------------------------\n\n\n\r"); wait(1.5);