Ahmad Alkaff / Mbed 2 deprecated CS3237

Dependencies:   mbed

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);