Victor Karthik / Mbed 2 deprecated STM32Disco_Melexis

Dependencies:   mbed

Revision:
1:0624feb5a279
Parent:
0:7a2e98bb27f5
Child:
2:5e957dcc94bc
--- a/main.cpp	Tue Feb 04 20:57:04 2020 +0000
+++ b/main.cpp	Tue Feb 11 22:51:15 2020 +0000
@@ -1,5 +1,6 @@
 #include "mbed.h"
 
+
 /*  for the button press device should start reading, then it should stop the loop for button press  */
 
 AnalogIn analog_value(A0);
@@ -7,18 +8,56 @@
 DigitalOut myled(LED1);
 bool workState= false;
  
- 
+
+I2C i2c(PB_11,PB_10);   //sda,scl
+
+
+const int dev_add_W                  = 0xB6 ; // address with write(0) bit at last////Address must be bit shifted left, 
+const int  reg_To_address             = 0x27 ;//temperature of the object pointed 
+
+
+
+
 void read_ecg(bool work)
 {
     float meas_r;
     float meas_v;
+    int temp;
+    float tempC;
+    int ack=1;
     
     if(work){
            meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
            meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range
+           
+            char cmd[2];
+            char reg[1];
+            reg[0] = 0x27;
+      //     i2c.write(dev_add_W, 1, true);
+        //   i2c.read(ack);
+           
+           i2c.write(dev_add_W);
+           i2c.read(ack);
+           i2c.write(reg_To_address);
+           i2c.read(ack);
+           
+         //  write (int address, const char *data, int length, bool repeated=false)
+           i2c.write(dev_add_W,reg,1,true );
+            i2c.read(ack);
+            
+         //   read (int address, char *data, int length, bool repeated=false)
+           i2c.read(dev_add_W, cmd,2,false);
+           temp = (cmd[1]<<8)|cmd[0];
+           tempC = (0.02*temp) -273.15;
+         
+           
         
           // Display values
            printf("measure = %f = %.0f mV\n", meas_r, meas_v);
+           
+           //temp =15143;   
+          printf("Temperature : %f \r\n",tempC);
+                
         }