MLX90614 library. Working on both Mbed2 and Mbed5

Dependents:   MLX90614_Demo

Fork of MLX90614 by Hikaru Sugiura

Files at this revision

API Documentation at this revision

Comitter:
aquahika
Date:
Thu Jun 09 13:07:40 2011 +0000
Parent:
0:9237d31f0d03
Child:
2:01d333d06727
Commit message:

Changed in this revision

mlx90614.c Show diff for this revision Revisions of this file
mlx90614.cpp Show annotated file Show diff for this revision Revisions of this file
mlx90614.h Show annotated file Show diff for this revision Revisions of this file
--- a/mlx90614.c	Wed Jun 08 09:20:11 2011 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
- 
-#include "mlx90614.h"
-
-MLX90614::MLX90614(I2C* i2c,int addr){
-
-    this->i2caddress = addr;
-    this->i2c = i2c; 
-    
-}
-
-
-bool MLX90614::getTemp(float* temp_val){
-
-    char p1,p2,p3;
-    float temp_thermo;
-    bool ch;
-
-    i2c->stop();                            //stop i2c if not ack
-    wait(0.01);
-    i2c->start();                           //start I2C                   
-    ch=i2c->write(i2caddress);              //device address with write condition
-    
-    if(!ch)return false;                    //No Ack, return False
-    
-    ch=i2c->write(0x07);                    //device ram address where Tobj value is present
-
-    if(!ch)return false;                    //No Ack, return False
-
-
-    i2c->start();                           //repeat start
-    ch=i2c->write(i2caddress|0x01);         //device address with read condition 
-    if(!ch)return false;                    //No Ack, return False
-
-    p1=i2c->read(1);     //Tobj low byte
-    p2=i2c->read(1);     //Tobj heigh byte
-    p3=i2c->read(0);     //PEC
-    
-    i2c->stop();                            //stop condition
-     
-    
-    temp_thermo=((((p2&0x007f)<<8)+p1)*0.02)-0.01;      //degree centigrate conversion
-    *temp_val=temp_thermo-273;                          //Convert kelvin to degree Celsius
-    
-    return true;                            //load data successfully, return true 
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mlx90614.cpp	Thu Jun 09 13:07:40 2011 +0000
@@ -0,0 +1,45 @@
+ 
+#include "mlx90614.h"
+
+MLX90614::MLX90614(I2C* i2c,int addr){
+
+    this->i2caddress = addr;
+    this->i2c = i2c; 
+    
+}
+
+
+bool MLX90614::getTemp(float* temp_val){
+
+    char p1,p2,p3;
+    float temp_thermo;
+    bool ch;
+
+    i2c->stop();                            //stop i2c if not ack
+    wait(0.01);
+    i2c->start();                           //start I2C                   
+    ch=i2c->write(i2caddress);              //device address with write condition
+    
+    if(!ch)return false;                    //No Ack, return False
+    
+    ch=i2c->write(0x07);                    //device ram address where Tobj value is present
+
+    if(!ch)return false;                    //No Ack, return False
+
+
+    i2c->start();                           //repeat start
+    ch=i2c->write(i2caddress|0x01);         //device address with read condition 
+    if(!ch)return false;                    //No Ack, return False
+
+    p1=i2c->read(1);     //Tobj low byte
+    p2=i2c->read(1);     //Tobj heigh byte
+    p3=i2c->read(0);     //PEC
+    
+    i2c->stop();                            //stop condition
+     
+    
+    temp_thermo=((((p2&0x007f)<<8)+p1)*0.02)-0.01;      //degree centigrate conversion
+    *temp_val=temp_thermo-273;                          //Convert kelvin to degree Celsius
+    
+    return true;                            //load data successfully, return true 
+}
\ No newline at end of file
--- a/mlx90614.h	Wed Jun 08 09:20:11 2011 +0000
+++ b/mlx90614.h	Thu Jun 09 13:07:40 2011 +0000
@@ -1,26 +1,26 @@
-#include "mbed.h"
-
-//Melexis Infrared Thermometer MLX90614 Library
-
-//*****************************************************************
-//  Build : 2011-06-08 Hikaru Sugiura
-//          Only read thermo data.
-//  
-//  This program is based on Mr.Mitesh Patel's "mlx90614".
-//  http://mbed.org/users/mitesh2patel/programs/mlx90614/lqnetj
-//
-//  This program does not check CRC.
-//  If you want to check CRC, please do it your self :)
-//****************************************************************//
-
-class MLX90614{
-
-    public:
-        MLX90614(I2C* i2c,int addr=0xB4);
-        bool getTemp(float* temp_val);
-        
-    private:
-       I2C* i2c;
-       int i2caddress;
-
+#include "mbed.h"
+
+//Melexis Infrared Thermometer MLX90614 Library
+
+//*****************************************************************
+//  Build : 2011-06-08 Hikaru Sugiura
+//          Only read thermo data.
+//  
+//  This program is based on Mr.Mitesh Patel's "mlx90614".
+//  http://mbed.org/users/mitesh2patel/programs/mlx90614/lqnetj
+//
+//  This program does not check CRC.
+//  If you want to check CRC, please do it your self :)
+//****************************************************************//
+
+class MLX90614{
+
+    public:
+        MLX90614(I2C* i2c,int addr=0xB4);
+        bool getTemp(float* temp_val);
+        
+    private:
+       I2C* i2c;
+       int i2caddress;
+
 };
\ No newline at end of file