test MAX31850

Dependencies:   OneWireFB mbed

Files at this revision

API Documentation at this revision

Comitter:
fblanc
Date:
Wed Sep 28 06:46:10 2016 +0000
Parent:
3:b4277f7c538e
Commit message:
test

Changed in this revision

OneWire.lib Show annotated file Show diff for this revision Revisions of this file
OneWire/DS18X20.cpp Show diff for this revision Revisions of this file
OneWire/DS18X20.h Show diff for this revision Revisions of this file
OneWire/DS2450.cpp Show diff for this revision Revisions of this file
OneWire/DS2450.h Show diff for this revision Revisions of this file
OneWire/Horner_ITS90.h Show diff for this revision Revisions of this file
OneWire/MAX31850.cpp Show diff for this revision Revisions of this file
OneWire/MAX31850.h Show diff for this revision Revisions of this file
OneWire/crc16.cpp Show diff for this revision Revisions of this file
OneWire/crc16.h Show diff for this revision Revisions of this file
OneWire/crc8.cpp Show diff for this revision Revisions of this file
OneWire/crc8.h Show diff for this revision Revisions of this file
OneWire/onewire.cpp Show diff for this revision Revisions of this file
OneWire/onewire.h Show diff for this revision Revisions of this file
OneWire/utils.cpp Show diff for this revision Revisions of this file
OneWire/utils.h Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r b4277f7c538e -r 031e71e61e80 OneWire.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OneWire.lib	Wed Sep 28 06:46:10 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/fblanc/code/OneWireFB/#9acbbb021a43
diff -r b4277f7c538e -r 031e71e61e80 OneWire/DS18X20.cpp
--- a/OneWire/DS18X20.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-/**
-* @file DS18x20.c
-* @brief library of DS18X20 1-Wire digital thermometer (http://www.maxim-ic.com/datasheet/index.mvp/id/2812)
-* @author Maciej Rajtar (Published 10 May 2010 www.mbed.org)
-* @author Frederic BLANC (Published 01/03/2012 www.mbed.org)
-*/
-#include "mbed.h"
-#include "onewire.h"
-#include "DS18X20.h"
-#include "crc8.h"
-#include "utils.h"
-//**********************************************************************************************************
-//*                                  DS18X20_show_temp
-//**********************************************************************************************************
-
-/**
-*     @brief DS18X20_show_temp
-*    @param  [in] id[] = rom_code
-*    @param  [in] n number of id[n]
-*    @param  [out] text temp in degre celsius
-
-*     @date 20/06/2011
-*/
-void DS18X20_show_temp(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits,char *text) {
-    uint16_t decicelsius;
-    char s[10];
-    float temperature;
-    sprintf(text,"");
-    sprintf(s,"%s", (subzero)?"-":"");
-    strcat(text,s);
-    decicelsius = DS18X20_temp_to_decicel(subzero, cel, cel_frac_bits);
-    temperature = decicelsius;
-    temperature = temperature/10;
-    sprintf(s,"%4.1f", temperature);
-    strcat(text,s);
-
-}
-/**
-*     @brief DS18X20_show_temp
-*    @param  [in] id[] = rom_code
-*    @param  [in] n number of id[n]
-*    @return temp in degre celsius
-
-*     @date 21/10/2011
-*/
-float DS18X20_temp(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits) {
-    return ((subzero)?-1:1)*DS18X20_temp_to_decicel(subzero, cel, cel_frac_bits)/10;
-}
-//**********************************************************************************************************
-//*                                  DS18X20_get_power_status
-//**********************************************************************************************************
- 
-/**
-*     @brief get power status of DS18x20
-*    @param  [in] id[] = rom_code
-*    @return DS18X20_POWER_EXTERN or DS18X20_POWER_PARASITE
-*     @date 20/06/2011
-*/
-uint8_t DS18X20_get_power_status(uint8_t id[]) {
-    uint8_t pstat;
-    ow_reset();
-    ow_command(DS18X20_READ_POWER_SUPPLY, id);
-    pstat=ow_bit_io(1); // pstat 0=is parasite/ !=0 ext. powered
-    ow_reset();
-    return (pstat) ? DS18X20_POWER_EXTERN:DS18X20_POWER_PARASITE;
-}
-
-/**
-*     @brief get power status of DS18x20
-*    @param  [in] n num bus onewire
-*    @param  [in] id[] = rom_code
-*    @return DS18X20_POWER_EXTERN or DS18X20_POWER_PARASITE
-*     @date 6/09/2011
-*/
-uint8_t DS18X20_get_power_status(uint8_t n,uint8_t id[]) {
-    uint8_t pstat;
-    ow_reset(n);
-    ow_command(n,DS18X20_READ_POWER_SUPPLY, id);
-    pstat=ow_bit_io(n,1); // pstat 0=is parasite/ !=0 ext. powered
-    ow_reset(n);
-    return (pstat) ? DS18X20_POWER_EXTERN:DS18X20_POWER_PARASITE;
-}
-//**********************************************************************************************************
-//*                                  DS18X20_start_meas
-//**********************************************************************************************************
-/**
-*   @brief reads temperature (scratchpad) of sensor with rom-code id
-   output: subzero==1 if temp.<0, cel: full celsius, mcel: frac
-   in millicelsius*0.1
-   i.e.: subzero=1, cel=18, millicel=5000 = -18,5000&#65533;C
-*    @param  [in] n num bus onewire
-*    @param  [in] id[] = rom_code
-*    @param  [out] temperature
-*    @return DS18X20_OK or DS18X20_ERROR_CRC
-*     @date 07/12/2012
-*/
-uint8_t DS18X20_read_meas(uint8_t n,uint8_t id[], float* temperature) {
-    uint8_t i;
-    uint8_t sp[DS18X20_SP_SIZE];
-    uint8_t subzero;
-    uint8_t cel;
-    uint8_t cel_frac_bits;
-    
-    ow_reset(n);
-    ow_command(n,DS18X20_READ, id);
-    for ( i=0 ; i< DS18X20_SP_SIZE; i++ )
-        sp[i]=ow_byte_rd(n);
-    if ( crc8( &sp[0], DS18X20_SP_SIZE ) ){
-          if ((sp[DS18X20_SP_SIZE-1]==0xFF) && (sp[DS18X20_SP_SIZE-2]==0xFF))
-            return OW_ERROR;    // bus error
-        return DS18X20_ERROR_CRC;    // data error
-    }
-        
-    DS18X20_meas_to_cel(id[0], sp, &subzero, &cel, &cel_frac_bits);
-    *temperature = cel_frac_bits*.0625;
-    *temperature += cel;
-    if (subzero)
-       *temperature *= -1; 
-    return DS18X20_OK;
-}
-/**
-*   @brief start measurement (CONVERT_T) for all sensors if input id==NULL
-   or for single sensor. then id is the rom-code
-*    @param  [in] with_power_extern
-*    @param  [in] rom_code
-*    @return DS18X20_OK or DS18X20_START_FAIL
-*     @date 20/06/2011
-*/
-uint8_t DS18X20_start_meas( uint8_t with_power_extern, uint8_t id[]) {
-    ow_reset(); //**
-    if ( ow_test_pin() ) { // only send if bus is "idle" = high
-        ow_command( DS18X20_CONVERT_T, id );
-        if (with_power_extern != DS18X20_POWER_EXTERN)
-            ow_parasite_enable();
-        return DS18X20_OK;
-    }
-    return DS18X20_START_FAIL;
-
-}
-/**
-*   @brief start measurement (CONVERT_T) for all sensors if input id==NULL
-   or for single sensor. then id is the rom-code
-*    @param  [in] n num bus onewire
-*    @param  [in] with_power_extern
-*    @param  [in] rom_code
-*    @return DS18X20_OK or DS18X20_START_FAIL
-*     @date 06/09/2011
-*/
-uint8_t DS18X20_start_meas(uint8_t n, uint8_t with_power_extern, uint8_t id[]) {
-    ow_reset(n); //**
-    if ( ow_test_pin(n) ) { // only send if bus is "idle" = high
-        ow_command(n, DS18X20_CONVERT_T, id );
-        if (with_power_extern != DS18X20_POWER_EXTERN)
-            ow_parasite_enable(n);
-        return DS18X20_OK;
-    }
-    return DS18X20_START_FAIL;
-
-}
-//**********************************************************************************************************
-//*                                  DS18X20_read_meas
-//**********************************************************************************************************
-
-/**
-*   @brief reads temperature (scratchpad) of sensor with rom-code id
-   output: subzero==1 if temp.<0, cel: full celsius, mcel: frac
-   in millicelsius*0.1
-   i.e.: subzero=1, cel=18, millicel=5000 = -18,5000&#65533;C
-*    @param  [in] id[] = rom_code
-*    @param  [out] subzero
-*    @param  [out] cel
-*    @param  [out] cel_frac_bits
-*    @return DS18X20_OK or DS18X20_ERROR_CRC
-*     @date 20/06/2011
-*/
-uint8_t DS18X20_read_meas(uint8_t id[], uint8_t *subzero,
-                          uint8_t *cel, uint8_t *cel_frac_bits) {
-    uint8_t i;
-    uint8_t sp[DS18X20_SP_SIZE];
-
-    ow_reset();
-    ow_command(DS18X20_READ, id);
-    for ( i=0 ; i< DS18X20_SP_SIZE; i++ )
-        sp[i]=ow_byte_rd();
-    if ( crc8( &sp[0], DS18X20_SP_SIZE ) ){
-          if ((sp[DS18X20_SP_SIZE-1]==0xFF) && (sp[DS18X20_SP_SIZE-2]==0xFF))
-            return OW_ERROR;    // bus error
-        return DS18X20_ERROR_CRC;    // data error
-    }
-        
-    DS18X20_meas_to_cel(id[0], sp, subzero, cel, cel_frac_bits);
-    return DS18X20_OK;
-}
-/**
-*   @brief reads temperature (scratchpad) of sensor with rom-code id
-   output: subzero==1 if temp.<0, cel: full celsius, mcel: frac
-   in millicelsius*0.1
-   i.e.: subzero=1, cel=18, millicel=5000 = -18,5000&#65533;C
-*    @param  [in] n num bus onewire
-*    @param  [in] id[] = rom_code
-*    @param  [out] subzero
-*    @param  [out] cel
-*    @param  [out] cel_frac_bits
-*    @return DS18X20_OK or DS18X20_ERROR_CRC
-*     @date 06/09/2011
-*/
-uint8_t DS18X20_read_meas(uint8_t n,uint8_t id[], uint8_t *subzero,
-                          uint8_t *cel, uint8_t *cel_frac_bits) {
-    uint8_t i;
-    uint8_t sp[DS18X20_SP_SIZE];
-
-    ow_reset(n);
-    ow_command(n,DS18X20_READ, id);
-    for ( i=0 ; i< DS18X20_SP_SIZE; i++ )
-        sp[i]=ow_byte_rd(n);
-    if ( crc8( &sp[0], DS18X20_SP_SIZE ) ){
-          if ((sp[DS18X20_SP_SIZE-1]==0xFF) && (sp[DS18X20_SP_SIZE-2]==0xFF))
-            return OW_ERROR;    // bus error
-        return DS18X20_ERROR_CRC;    // data error
-    }
-        
-    DS18X20_meas_to_cel(id[0], sp, subzero, cel, cel_frac_bits);
-    return DS18X20_OK;
-}
-/**
-*   @brief convert raw value from DS18x20 to Celsius
-   input is:
-   - familycode fc (0x10/0x28 see header)
-   - scratchpad-buffer
-   output is:
-   - cel full celsius
-   - fractions of celsius in millicelsius*(10^-1)/625 (the 4 LS-Bits)
-   - subzero =0 positiv / 1 negativ
-   always returns  DS18X20_OK
-   TODO invalid-values detection (but should be covered by CRC)
-*    @param  [in] fc
-*    @param  [in] sp
-*    @param  [out] subzero
-*    @param  [out] cel
-*    @param  [out] cel_frac_bits
-*    @return DS18X20_OK
-*     @date 20/06/2011
-*/
-uint8_t DS18X20_meas_to_cel( uint8_t fc, uint8_t *sp,
-                             uint8_t* subzero, uint8_t* cel, uint8_t* cel_frac_bits) {
-    uint16_t meas;
-    uint8_t  i;
-
-    meas = sp[0];  // LSB
-    meas |= ((uint16_t)sp[1])<<8; // MSB
-    //meas = 0xff5e; meas = 0xfe6f;
-
-    //  only work on 12bit-base
-    if ( fc == DS18S20_ID ) { // 9 -> 12 bit if 18S20
-        /* Extended measurements for DS18S20 contributed by Carsten Foss */
-        meas &= (uint16_t) 0xfffe;    // Discard LSB , needed for later extended precicion calc
-        meas <<= 3;                    // Convert to 12-bit , now degrees are in 1/16 degrees units
-        meas += (16 - sp[6]) - 4;    // Add the compensation , and remember to subtract 0.25 degree (4/16)
-    }
-
-    // check for negative
-    if ( meas & 0x8000 )  {
-        *subzero=1;      // mark negative
-        meas ^= 0xffff;  // convert to positive => (twos complement)++
-        meas++;
-    } else *subzero=0;
-
-    // clear undefined bits for B != 12bit
-    if ( fc == DS18B20_ID ) { // check resolution 18B20
-        i = sp[DS18B20_CONF_REG];
-        if ( (i & DS18B20_12_BIT) == DS18B20_12_BIT ) ;
-        else if ( (i & DS18B20_11_BIT) == DS18B20_11_BIT )
-            meas &= ~(DS18B20_11_BIT_UNDF);
-        else if ( (i & DS18B20_10_BIT) == DS18B20_10_BIT )
-            meas &= ~(DS18B20_10_BIT_UNDF);
-        else { // if ( (i & DS18B20_9_BIT) == DS18B20_9_BIT ) {
-            meas &= ~(DS18B20_9_BIT_UNDF);
-        }
-    }
-
-    *cel  = (uint8_t)(meas >> 4);
-    *cel_frac_bits = (uint8_t)(meas & 0x000F);
-
-    return DS18X20_OK;
-}
-
-/**
-*   @brief converts to decicelsius
-   input is ouput from meas_to_cel
-    i.e.: sz=0, c=28, frac=15 returns 289 (=28.9&#65533;C)
-0    0    0
-1    625    625    1
-2    1250    250
-3    1875    875    3
-4    2500    500    4
-5    3125    125
-6    3750    750    6
-7    4375    375
-8    5000    0
-9    5625    625    9
-10    6250    250
-11    6875    875    11
-12    7500    500    12
-13    8125    125
-14    8750    750    14
-15    9375    375
-*    @param  [in]  subzero
-*    @param  [in]  cel
-*    @param  [in]  cel_frac_bits
-*    @return absolute value of temperatur in decicelsius
-*     @date 20/06/2011
-*/
-uint16_t DS18X20_temp_to_decicel(uint8_t subzero, uint8_t cel,
-                                 uint8_t cel_frac_bits) {
-    uint16_t h;
-    uint8_t  i;
-    uint8_t need_rounding[] = { 1, 3, 4, 6, 9, 11, 12, 14 };
-
-    h = cel_frac_bits*DS18X20_FRACCONV/1000;
-    h += cel*10;
-    if (!subzero) {
-        for (i=0; i<sizeof(need_rounding); i++) {
-            if ( cel_frac_bits == need_rounding[i] ) {
-                h++;
-                break;
-            }
-        }
-    }
-    return h;
-}
-/**
-*   @brief  compare temperature values (full celsius only)
-*    @param  [in] subzero1
-*    @param  [in] cel1
-*    @param  [in] subzero2
-*    @param  [in] cel2
-*    @return -1 if param-pair1 < param-pair2
-            0 if ==
-            1 if >
-*     @date 20/06/2011
-*/
-int8_t DS18X20_temp_cmp(uint8_t subzero1, uint16_t cel1,
-                        uint8_t subzero2, uint16_t cel2) {
-    int16_t t1 = (subzero1) ? (cel1*(-1)) : (cel1);
-    int16_t t2 = (subzero2) ? (cel2*(-1)) : (cel2);
-
-    if (t1<t2) return -1;
-    if (t1>t2) return 1;
-    return 0;
-}
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/DS18X20.h
--- a/OneWire/DS18X20.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/* DS18X20 specific values (see datasheet www.maxim-ic.com/datasheet/index.mvp/id/2812) */
-#ifndef _DS18X20_
-#define _DS18X20_
-#define DS18S20_ID 0x10
-#define DS18B20_ID 0x28
-
-#define DS18X20_POWER_PARASITE 0x00
-#define DS18X20_POWER_EXTERN   0x01
-#define DS18X20_CONVERT_T    0x44
-#define DS18X20_READ        0xBE
-#define DS18X20_WRITE        0x4E
-#define DS18X20_EE_WRITE    0x48
-#define DS18X20_EE_RECALL    0xB8
-#define DS18X20_READ_POWER_SUPPLY 0xB4
-
-#define DS18X20_OK          0x00
-#define DS18X20_ERROR       0x01
-#define DS18X20_START_FAIL  0x02
-#define DS18X20_ERROR_CRC   0x03
-
-#define DS18B20_CONF_REG    4
-#define DS18B20_9_BIT       0
-#define DS18B20_10_BIT      (1<<5)
-#define DS18B20_11_BIT      (1<<6)
-#define DS18B20_12_BIT      ((1<<6)|(1<<5))
-
-// indefined bits in LSB if 18B20 != 12bit
-#define DS18B20_9_BIT_UNDF       ((1<<0)|(1<<1)|(1<<2))
-#define DS18B20_10_BIT_UNDF      ((1<<0)|(1<<1))
-#define DS18B20_11_BIT_UNDF      ((1<<0))
-#define DS18B20_12_BIT_UNDF      0
-
-// conversion times in ms
-#define DS18B20_TCONV_12BIT      750
-#define DS18B20_TCONV_11BIT      DS18B20_TCONV_12_BIT/2
-#define DS18B20_TCONV_10BIT      DS18B20_TCONV_12_BIT/4
-#define DS18B20_TCONV_9BIT       DS18B20_TCONV_12_BIT/8
-#define DS18S20_TCONV            DS18B20_TCONV_12_BIT
-
-// constant to convert the fraction bits to cel*(10^-4)
-#define DS18X20_FRACCONV         625
-
-#define DS18X20_SP_SIZE  9
-
-// DS18X20 EEPROM-Support
-#define DS18X20_WRITE_SCRATCHPAD  0x4E
-#define DS18X20_COPY_SCRATCHPAD   0x48
-#define DS18X20_RECALL_E2         0xB8
-#define DS18X20_COPYSP_DELAY      10 /* ms */
-#define DS18X20_TH_REG      2
-#define DS18X20_TL_REG      3
-
-void DS18X20_show_temp(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits,char *text);
-float DS18X20_temp(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits);                          
-uint8_t DS18X20_get_power_status(uint8_t id[]); 
-uint8_t DS18X20_get_power_status(uint8_t n,uint8_t id[]);
-uint8_t DS18X20_start_meas( uint8_t with_external, uint8_t id[]);
-uint8_t DS18X20_start_meas(uint8_t n, uint8_t with_external, uint8_t id[]);
-uint8_t DS18X20_read_meas(uint8_t id[], uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
-uint8_t DS18X20_read_meas(uint8_t n, uint8_t id[], uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
-uint8_t DS18X20_read_meas_single(uint8_t familycode, uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
-uint8_t DS18X20_meas_to_cel( uint8_t fc, uint8_t *sp, uint8_t* subzero, uint8_t* cel, uint8_t* cel_frac_bits);
-uint8_t DS18X20_read_meas(uint8_t n,uint8_t id[], float* temperature);
-uint16_t DS18X20_temp_to_decicel(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits);
-int8_t DS18X20_temp_cmp(uint8_t subzero1, uint16_t cel1, uint8_t subzero2, uint16_t cel2);
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/DS2450.cpp
--- a/OneWire/DS2450.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,464 +0,0 @@
-/**
-* @file DS2450.c
-* @brief library of DS2450 1-Wire Quad A/D Converter  (http://www.maxim-ic.com/datasheet/index.mvp/id/2921)
-* @author Frederic BLANC (Published 01/03/2012 www.mbed.org)
-*/
-#include "mbed.h"
-#include "onewire.h"
-#include "DS2450.h"
-#include "crc8.h"
-#include "crc16.h"
-#include "utils.h"
-//**********************************************************************************************************
-//*                                  DS2450_read_ADC
-//**********************************************************************************************************
-
-/**
- *     @brief lancement lecture DS2450 ADC
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [out] adc[] tableau des valeurs des adc
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_read_ADC(uint8_t id[], uint16_t adc[]) {
-    uint8_t i,j;
-    uint8_t error;
-    uint8_t sp[DS2450_SP_SIZE];
-    //waiting for convertion time ( nbchannel x resolution x 80&#65533;s +160&#65533;s)
-
-    error=DS2450_read_page(&id[0],DS2450_PAGE0,&sp[0]); //read data
-    if (error)
-        return error;
-    j=0;
-    for (i=0;i<8;i+=2)
-        adc[j++]=uint8_to_uint16(sp[i+3],sp[i+4]); //sp[i+3] LSB ,sp[i+4] MSB
-    return OW_OK;
-}
-
-
-/**
- *     @brief lancement lecture DS2450 ADC
- *    @param  [in] n num bus onewire
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [out] adc[] tableau des valeurs des adc
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 07/09/2011
- *
- */
-uint8_t DS2450_read_ADC(uint8_t n,uint8_t id[], uint16_t adc[]) {
-    uint8_t i,j;
-    uint8_t error;
-    uint8_t sp[DS2450_SP_SIZE];
-    //waiting for convertion time ( nbchannel x resolution x 80&#65533;s +160&#65533;s)
-
-    error=DS2450_read_page(n,&id[0],DS2450_PAGE0,&sp[0]); //read data
-    if (error)
-        return error;
-    j=0;
-    for (i=0;i<8;i+=2)
-        adc[j++]=uint8_to_uint16(sp[i+3],sp[i+4]); //sp[i+3] LSB ,sp[i+4] MSB
-    return OW_OK;
-}
-//**********************************************************************************************************
-//*                                  DS2450_start_and_read_ADC
-//**********************************************************************************************************
-
-/**
- *     @brief lancement & lecture DS2450 ADC
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [out] adc[] tableau des valeurs des adc
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_start_and_read_ADC(uint8_t id[], uint16_t adc[]) {
-    uint8_t i,j;
-    uint8_t error;
-    uint8_t sp[DS2450_SP_SIZE];
-
-    error=DS2450_convert(&id[0],0x0F,0x00); //start convert
-    if (error)
-        return error;
-
-    wait_ms(15);                           //waiting for convertion time ( nbchannel x resolution x 80&#65533;s +160&#65533;s)
-
-    error=DS2450_read_page(&id[0],DS2450_PAGE0,&sp[0]); //read data
-    if (error)
-        return error;
-
-    j=0;
-    for (i=0;i<8;i+=2)
-        adc[j++]=uint8_to_uint16(sp[i+3],sp[i+4]); //sp[i+3] LSB ,sp[i+4] MSB
-    return OW_OK;
-}
-
-/**
- *     @brief lancement & lecture DS2450 ADC
- *    @param  [in] n num bus onewire
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [out] adc[] tableau des valeurs des adc
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 07/09/2011
- *
- */
-uint8_t DS2450_start_and_read_ADC(uint8_t n,uint8_t id[], uint16_t adc[]) {
-    uint8_t i,j;
-    uint8_t error;
-    uint8_t sp[DS2450_SP_SIZE];
-
-    error=DS2450_convert(n,&id[0],0x0F,0x00); //start convert
-    if (error)
-        return error;
-
-    wait_ms(15);                           //waiting for convertion time ( nbchannel x resolution x 80&#65533;s +160&#65533;s)
-
-    error=DS2450_read_page(n,&id[0],DS2450_PAGE0,&sp[0]); //read data
-    if (error)
-        return error;
-
-    j=0;
-    for (i=0;i<8;i+=2)
-        adc[j++]=uint8_to_uint16(sp[i+3],sp[i+4]); //sp[i+3] LSB ,sp[i+4] MSB
-    return OW_OK;
-}
-
-//**********************************************************************************************************
-//*                                  DS2450_read_page
-//**********************************************************************************************************
-
-/**
- *     @brief lancement lecture page DS2450 ADC
- *    @param  [in]  id[] tableau d'identifiant OW
- *    @param  [in]  adresse de la page a lire
- *    @param  [out]  uint16_t sp tableau des valeurs de la page
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_read_page(uint8_t id[], uint8_t adresse,
-                         uint8_t *sp) {
-    uint8_t i;
-    if (id[0] == DS2450_ID) {
-        if (ow_reset())                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_READ_MEMORY;   // command
-        sp[1]=adresse;              //adress page LSB
-        sp[2]=0;                    //adress page MSB
-        ow_command(sp[0], &id[0]);
-        ow_byte_wr(sp[1]);
-        ow_byte_wr(sp[2]);
-
-        for ( i=3 ; i< DS2450_SP_SIZE; i++ ) { //read 8xdata + CRC16
-            sp[i]=ow_byte_rd();
-        }
-
-        if (ctrl_crc16( &sp[0], DS2450_SP_SIZE ) ) { //CRC16 (command+adress page LSB+adress page MSB+8xdata)
-            wait_ms(100);                   //wait 100ms if error
-            if ((sp[DS2450_SP_SIZE-1]==0xFF) && (sp[DS2450_SP_SIZE-2]==0xFF))
-                return OW_ERROR;    // bus error
-            if ((sp[DS2450_SP_SIZE-1]==0x00) && (sp[DS2450_SP_SIZE-2]==0x00))
-                return OW_BUSY;
-    
-            return OW_ERROR_CRC;    // data error
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-/**
- *     @brief lancement lecture page DS2450 ADC
-  *    @param  [in] n num bus onewire
- *    @param  [in]  id[] tableau d'identifiant OW
- *    @param  [in]  adresse de la page a lire
- *    @param  [out]   sp tableau des valeurs de la page
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 07/09/2011
- *
- */
-uint8_t DS2450_read_page(uint8_t n,uint8_t id[], uint8_t adresse,
-                         uint8_t *sp) {
-    uint8_t i;
-    if (id[0] == DS2450_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_READ_MEMORY;   // command
-        sp[1]=adresse;              //adress page LSB
-        sp[2]=0;                    //adress page MSB
-        ow_command(n,sp[0], &id[0]);
-        ow_byte_wr(n,sp[1]);
-        ow_byte_wr(n,sp[2]);
-
-        for ( i=3 ; i< DS2450_SP_SIZE; i++ ) { //read 8xdata + CRC16
-            sp[i]=ow_byte_rd(n);
-        }
-
-        if (ctrl_crc16( &sp[0], DS2450_SP_SIZE ) ) { //CRC16 (command+adress page LSB+adress page MSB+8xdata)
-            wait_ms(100);                   //wait 100ms if error
-            if ((sp[DS2450_SP_SIZE-1]==0xFF) && (sp[DS2450_SP_SIZE-2]==0xFF))
-                return OW_ERROR;    // bus error
-            if ((sp[DS2450_SP_SIZE-1]==0x00) && (sp[DS2450_SP_SIZE-2]==0x00))
-                return OW_BUSY;
-    
-            return OW_ERROR_CRC;    // data error
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-//**********************************************************************************************************
-//*                                  DS2450_convert
-//**********************************************************************************************************
-
-/**
- *     @brief lancement convertion DS2450 ADC
- *    @param  [in] uint8_t id[] tableau d'identifiant OW
- *    @param  [in] uint8_t input_select_mask
- *    @param  [in] uint8_t read_out_control
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_convert(uint8_t id[], uint8_t input_select_mask,uint8_t read_out_control) {
-    uint8_t i;
-    uint8_t sp[5];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset())                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_CONVERT;       // command
-        sp[1]=input_select_mask;    //mask
-        sp[2]=read_out_control;     //control
-        ow_command(sp[0], &id[0]);
-        ow_byte_wr(sp[1]);
-        ow_byte_wr(sp[2]);
-        for ( i=3 ; i< 5; i++ ) {   // read CRC16
-            sp[i]=ow_byte_rd();
-        }
-
-        if (ctrl_crc16( &sp[0], 5 ) ) { //CRC16 (command+mask LSB+control)
-            if ((sp[3]==0xFF) && (sp[3]==0xFF))
-                return OW_ERROR;
-            return OW_ERROR_CRC;
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-/**
- *     @brief lancement convertion DS2450 ADC
- *    @param  [in] n num bus onewire
- *    @param  [in] uint8_t id[] tableau d'identifiant OW
- *    @param  [in] uint8_t input_select_mask
- *    @param  [in] uint8_t read_out_control
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 07/09/2011
- *
- */
-uint8_t DS2450_convert(uint8_t n,uint8_t id[], uint8_t input_select_mask,uint8_t read_out_control) {
-    uint8_t i;
-    uint8_t sp[5];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_CONVERT;       // command
-        sp[1]=input_select_mask;    //mask
-        sp[2]=read_out_control;     //control
-        ow_command(n,sp[0], &id[0]);
-        ow_byte_wr(n,sp[1]);
-        ow_byte_wr(n,sp[2]);
-        for ( i=3 ; i< 5; i++ ) {   // read CRC16
-            sp[i]=ow_byte_rd(n);
-        }
-
-        if (ctrl_crc16( &sp[0], 5 ) ) { //CRC16 (command+mask LSB+control)
-            if ((sp[3]==0xFF) && (sp[3]==0xFF))
-                return OW_ERROR;
-            return OW_ERROR_CRC;
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-
-//**********************************************************************************************************
-//*                                  DS2450_configure_channel_ADC
-//**********************************************************************************************************
-
-/**
- *     @brief configure canal ADC  DS2450
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [in] channel
- *  @param  [in] conflsb configuration OE-A OC-A 0 0 RC3-A RC2-A RC1-A RC0-A
- *  @param  [in] confmsb configuration POR 0 AFH-A AFL-A AEH-A AEL-A 0 IR-A
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_configure_channel_ADC(uint8_t id[],uint8_t channel,uint8_t conflsb,uint8_t confmsb) {
-    uint8_t i;
-    uint8_t sp[7];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset())                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_WRITE_MEMORY;  // command
-        sp[1]=DS2450_PAGE1+channel; //adress page LSB
-        sp[2]=0x00;                 //adress page MSB
-        sp[3]=conflsb;              //databyte
-        ow_command(sp[0], &id[0]);
-        ow_byte_wr(sp[1]);
-        ow_byte_wr(sp[2]);
-        ow_byte_wr(sp[3]);
-        for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-            sp[i]=ow_byte_rd();
-        }
-
-        if (ctrl_crc16( &sp[0], 6 ) ) //CRC16 (command+adress page LSB+adress page MSB+databyte)
-            return OW_ERROR_CRC;
-        sp[3]=confmsb;                //databyte
-        ow_byte_wr(sp[3]);
-        for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-            sp[i]=ow_byte_rd();
-        }
-
-        if (sp[3]!=sp[6] ) //control data
-            return OW_ERROR_CRC;
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-/**
- *     @brief configure canal ADC  DS2450
- *    @param  [in] n num bus onewire
- *    @param  [in] id[] tableau d'identifiant OW
- *    @param  [in] channel
- *  @param  [in] conflsb configuration OE-A OC-A 0 0 RC3-A RC2-A RC1-A RC0-A
- *  @param  [in] confmsb configuration POR 0 AFH-A AFL-A AEH-A AEL-A 0 IR-A
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_configure_channel_ADC(uint8_t n,uint8_t id[],uint8_t channel,uint8_t conflsb,uint8_t confmsb) {
-    uint8_t i;
-    uint8_t sp[7];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_WRITE_MEMORY;  // command
-        sp[1]=DS2450_PAGE1+channel; //adress page LSB
-        sp[2]=0x00;                 //adress page MSB
-        sp[3]=conflsb;              //databyte
-        ow_command(n,sp[0], &id[0]);
-        ow_byte_wr(n,sp[1]);
-        ow_byte_wr(n,sp[2]);
-        ow_byte_wr(n,sp[3]);
-        for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-            sp[i]=ow_byte_rd(n);
-        }
-
-        if (ctrl_crc16( &sp[0], 6 ) ) //CRC16 (command+adress page LSB+adress page MSB+databyte)
-            return OW_ERROR_CRC;
-        sp[3]=confmsb;                //databyte
-        ow_byte_wr(n,sp[3]);
-        for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-            sp[i]=ow_byte_rd(n);
-        }
-
-        if (sp[3]!=sp[6] ) //control data
-            return OW_ERROR_CRC;
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-//**********************************************************************************************************
-//*                                  DS2450_configure_channel_ADC
-//**********************************************************************************************************
-
-/**
- *     @brief configure PAGE
- *    @param  [in] id[] tableau d'identifiant OW
-  *    @param  [in] uint8_t adresse de la page a ecrire
- *  @param  [in] config_page tableau de 8 byte
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 20/06/2011
- *
- */
-uint8_t DS2450_configure_page(uint8_t id[], uint8_t adresse,uint8_t configpage[]) {
-    uint8_t i,j;
-    uint8_t sp[7];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset())                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_WRITE_MEMORY;      // command
-        sp[1]=adresse;                  //adress page LSB
-        sp[2]=0x00;                     //adress page MSB
-        sp[3]=configpage[0];            //databyte
-        ow_command(sp[0], &id[0]);
-        ow_byte_wr(sp[1]);
-        ow_byte_wr(sp[2]);
-        ow_byte_wr(sp[3]);
-        for ( i=4 ; i< 7; i++ ) {       //read CRC16+databyte
-            sp[i]=ow_byte_rd();
-        }
-
-        if (sp[3]!=sp[6] ) //control data
-            return OW_ERROR_CRC;
-
-        for ( j=1 ; j< 7; j++ ) {
-            sp[3]=configpage[j];        //databyte
-            ow_byte_wr(sp[3]);
-            for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-                sp[i]=ow_byte_rd();
-            }
-            if (sp[3]!=sp[6] ) //control data
-                return OW_ERROR_CRC;
-
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-/**
- *     @brief configure PAGE
-  *    @param  [in] n num bus onewire
- *    @param  [in] id[] tableau d'identifiant OW
-  *    @param  [in] uint8_t adresse de la page a ecrire
- *  @param  [in] config_page tableau de 8 byte
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *     @date 07/09/2011
- *
- */
-uint8_t DS2450_configure_page(uint8_t n,uint8_t id[], uint8_t adresse,uint8_t configpage[]) {
-    uint8_t i,j;
-    uint8_t sp[7];
-    if (id[0] == DS2450_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=DS2450_WRITE_MEMORY;      // command
-        sp[1]=adresse;                  //adress page LSB
-        sp[2]=0x00;                     //adress page MSB
-        sp[3]=configpage[0];            //databyte
-        ow_command(n,sp[0], &id[0]);
-        ow_byte_wr(n,sp[1]);
-        ow_byte_wr(n,sp[2]);
-        ow_byte_wr(n,sp[3]);
-        for ( i=4 ; i< 7; i++ ) {       //read CRC16+databyte
-            sp[i]=ow_byte_rd(n);
-        }
-
-        if (sp[3]!=sp[6] ) //control data
-            return OW_ERROR_CRC;
-
-        for ( j=1 ; j< 7; j++ ) {
-            sp[3]=configpage[j];        //databyte
-            ow_byte_wr(n,sp[3]);
-            for ( i=4 ; i< 7; i++ ) {   //read CRC16+databyte
-                sp[i]=ow_byte_rd(n);
-            }
-            if (sp[3]!=sp[6] ) //control data
-                return OW_ERROR_CRC;
-
-        }
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/DS2450.h
--- a/OneWire/DS2450.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/* DS2450 specific values (see datasheet www.maxim-ic.com/datasheet/index.mvp/id/2921) */
-#ifndef _DS2450_
-#define _DS2450_
-#define DS2450_ID           0x20
-#define DS2450_READ_MEMORY  0xAA
-#define DS2450_WRITE_MEMORY 0x55
-#define DS2450_CONVERT      0x3C
-
-#define DS2450_SP_SIZE 13
-#define DS2450_PAGE0 0x00
-#define DS2450_PAGE1 0x08
-#define DS2450_PAGE2 0x10
-#define DS2450_PAGE3 0x18
-
-#define DS2450_ADCA 0x00 //channel A
-#define DS2450_ADCB 0x02 //channel B
-#define DS2450_ADCC 0x04 //channel C
-#define DS2450_ADCD 0x06 //channel D
-
-#define DS2450_IR_2V5          0x00 //input voltage range 2.55V
-#define DS2450_IR_5V1          0x01 //input voltage range 5.1V
-#define DS2450_AFH              0x20 //flag alarm value higher
-#define DS2450_AFL              0x10 //flag alarm value lower
-#define DS2450_AEH_ENABLE       0x08 //alarm value higher enable  
-#define DS2450_AEL_ENABLE       0x04 //alarm value lower enable
-
-#define DS2450_DISABLE_OUT  0x00 //disable ouput
-#define DS2450_ENABLE_OUT   0x80//enable ouput
-
-#define DS2450_16_BIT       0x00 //ADC 16bits enable ouput
-#define DS2450_15_BIT       0x0F //ADC 15bits enable ouput
-#define DS2450_12_BIT       0x0C //ADC 12bits enable ouput
-#define DS2450_8_BIT        0x08   //ADC 8bits enable ouput
-#define DS2450_1_BIT        0x01   //ADC 1bits enable ouput
-uint8_t DS2450_read_page(uint8_t id[], uint8_t adresse, uint8_t *val);
-uint8_t DS2450_read_page(uint8_t n,uint8_t id[], uint8_t adresse, uint8_t *val);
-uint8_t DS2450_convert(uint8_t id[], uint8_t input_select_mask,uint8_t read_out_control);
-uint8_t DS2450_convert(uint8_t n,uint8_t id[], uint8_t input_select_mask,uint8_t read_out_control);
-uint8_t DS2450_read_ADC(uint8_t id[], uint16_t adc[]);
-uint8_t DS2450_read_ADC(uint8_t n,uint8_t id[], uint16_t adc[]);
-uint8_t DS2450_start_and_read_ADC(uint8_t id[], uint16_t adc[]);
-uint8_t DS2450_start_and_read_ADC(uint8_t n,uint8_t id[], uint16_t adc[]);
-uint8_t DS2450_configure_channel_ADC(uint8_t id[],uint8_t channel,uint8_t conflsb,uint8_t confmsb);
-uint8_t DS2450_configure_channel_ADC(uint8_t n,uint8_t id[],uint8_t channel,uint8_t conflsb,uint8_t confmsb);
-uint8_t DS2450_configure_page(uint8_t id[], uint8_t adresse,uint8_t configpage[]);
-uint8_t DS2450_configure_page(uint8_t n,uint8_t id[], uint8_t adresse,uint8_t configpage[]);
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/Horner_ITS90.h
--- a/OneWire/Horner_ITS90.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#ifndef __Horner_ITS90_H__
-#define __Horner_ITS90_H__
-
-const double ITS90_TCK_subzero[] =
-{
-  
-
-0.0,
-2.5173462E-2,
--1.1662878E-6,
--1.0833638E-9,
--8.9773540E-13,
--3.7342377E-16,
--8.6632643E-20,
--1.0450598E-23,
--5.1920577E-28,
-0.0
-
-};
-const double ITS90_TCK_sub500[] =
-{
-0.0,
-2.508355E-02,
-7.860106E-08,
--2.503131E-10,
-8.315270E-14,
--1.228034E-17,
-9.804036E-22,
--4.413030E-26,
-1.057734E-30,
--1.052755E-35
-};
-
-const double ITS90_TCK_sub1372[] =
-{
--1.318058E+02,
-4.830222E-02,
--1.646031E-06,
-5.464731E-11,
--9.650715E-16,
-8.802193E-21,
--3.110810E-26,
-0.0,
-0.0,
-0.0
-
-};
-
-#endif
diff -r b4277f7c538e -r 031e71e61e80 OneWire/MAX31850.cpp
--- a/OneWire/MAX31850.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/**
-* @file MAX31850.cpp
-* @brief library of MAX31850  1-Wire Thermocouple-to-Digital Converters,Cold-Junction Compensated  (http://www.maximintegrated.com/datasheet/index.mvp/id/7953)
-* @author Frederic BLANC
-* @date 2014_01_15
-*/
-#include "mbed.h"
-#include "onewire.h"
-#include "MAX31850.h"
-#include "crc8.h"
-#include "Horner_ITS90.h"
-int MAX31850_Read_Scratch(uint8_t id[],uint8_t sp[],uint8_t n)
-{
-    if (id[0] == MAX31850_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        sp[0]=MAX31850_READ;   // command
-        ow_command(n,sp[0], &id[0]);
-        for ( int i=0 ; i< MAX31850_SP_SIZE; i++ ) { //read 8xdata + CRC16
-            sp[i]=ow_byte_rd(n);
-        }
-        if(sp[8]!=crc8(sp,8))
-            return OW_ERROR_CRC;
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
-
-int MAX31850_Temp_TRUE(uint8_t *sp,double *temp)
-{
-
-
-    float temp_cj,temp_tc;
-    double vtc;
-    int err; 
-    
-    err = MAX31850_Temp_TC(sp,&temp_tc);
-    if(err) {
-        return err;
-    }
-    MAX31850_Temp_CJ(sp,&temp_cj);
-
-    vtc = MAX31850_K * temp_tc ;
-    *temp=0;
-    if(temp_tc < 0.0) {
-        for(int i=0;i<10;++i)
-        {
-        
-        *temp+=ITS90_TCK_subzero[i]*pow(vtc,i);
-        }
-    } else if(temp_tc < 500.0) {
-        for(int i=0;i<10;++i)
-        {
-        
-        *temp+=ITS90_TCK_sub500[i]*pow(vtc,i);
-        }
-    } else {
-        for(int i=0;i<10;++i)
-        {
-        
-        *temp+=ITS90_TCK_sub1372[i]*pow(vtc,i);
-        }
-    }
-    return OW_OK;
-}
-
-
-int MAX31850_Temp_TC(uint8_t *sp,float *temp)
-{
-
-    uint8_t *ptr_meas;
-    uint16_t meas;
-
-    if(sp[0]& 1)
-        return MAX31850_ERR_FAULT;
-    if(sp[2]& (1<<1))
-        return MAX31850_ERR_OPEN_CIRCUIT;
-    if(sp[2]& (1<<2))
-        return MAX31850_ERR_SHORT2GND;
-    if(sp[2]& (1<<3))
-        return MAX31850_ERR_SHORT2VDD;
-    ptr_meas=(uint8_t*) &meas;
-    *ptr_meas = sp[0]  ;  // LSB
-    *++ptr_meas = sp[1]; // MSB
-    if ( meas & 0x8000 )  {
-
-        meas ^= 0xffff;  // convert to positive => (twos complement)++
-        meas++;
-        *temp= -1.0 * MAX31850_ADC_TEMP_TC_UNIT * (float)(meas>>2);
-    } else {
-        *temp=  MAX31850_ADC_TEMP_TC_UNIT * (float)(meas>>2);
-    }
-
-    return OW_OK;
-}
-
-int MAX31850_Temp_CJ(uint8_t *sp,float *temp)
-{
-    uint8_t *ptr_meas;
-    uint16_t meas;
-
-    ptr_meas=(uint8_t*) &meas;
-    *ptr_meas = sp[2]  ;  // LSB
-    *++ptr_meas = sp[3]; // MSB
-    if ( meas & 0x8000 )  {
-
-        meas ^= 0xffff;  // convert to positive => (twos complement)++
-        meas++;
-        *temp= -1.0 * MAX31850_ADC_TEMP_CJ_UNIT * (float)(meas>>4);
-    } else {
-        *temp=  MAX31850_ADC_TEMP_CJ_UNIT * (float)(meas>>4);
-    }
-    return OW_OK;
-}
-
-int MAX31850_Start_meas(uint8_t id[],uint8_t n=0)
-{
-    if (id[0] == MAX31850_ID) {
-        if (ow_reset(n))                 //reset OW
-            return OW_SHORT_CIRCUIT;
-        ow_command(n,MAX31850_CONVERT_T, &id[0]);
-        return OW_OK;
-    }
-    return OW_ERROR_BAD_ID;
-}
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/MAX31850.h
--- a/OneWire/MAX31850.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* DS2450 specific values (see datasheet http://www.maximintegrated.com/datasheet/index.mvp/id/7953) */
-#ifndef __MAX31850_H__
-#define __MAX31850_H__
-#define MAX31850_ID 0x3B
-#define MAX31850_SP_SIZE 9
-
-#define MAX31850_CONVERT_T    0x44   //  0x44
-#define MAX31850_READ_POWER_SUPPLY    0xB4
-#define MAX31850_READ           0xBE
-
-#define MAX31850_ADC_TEMP_TC_UNIT   0.25
-#define MAX31850_ADC_TEMP_CJ_UNIT   0.0625
-#define MAX31850_K               41.276//41.276µV/C
-
-#define MAX31850_ERR_FAULT -10;
-#define MAX31850_ERR_SHORT2VDD -12;
-#define MAX31850_ERR_SHORT2GND -13;
-#define MAX31850_ERR_OPEN_CIRCUIT -14;
-/**
- *    @brief  lecture  registre MAX31850
- *    @param  [in] uint8_t id[] tableau d'identifiant OW
- *    @param  [out] uint8_t  sp[] tableau de registre
- *    @param  [in] uint8_t n bus ow
- *    @return OW_OK si erreur retourne OW_ERROR_CRC
- *    @date 02/12/2013
- *
- */
-int MAX31850_Read_Scratch(uint8_t id[],uint8_t sp[],uint8_t n) ;
-
-/**
- *    @brief  lecture  temperature thermocouple Linearized MAX31850
- *    @param  [in] uint8_t sp[] tableau registre MAX31850
- *    @param  [out] float temperature thermocouple Linearized degre Celsuis
- *    @return OW_OK si erreur retourne ERROR
- *    @date 04/12/2013
- *
- */
- int MAX31850_Temp_TRUE(uint8_t *sp,double *temp);
- 
-/**
- *    @brief  lecture  temperature thermocouple MAX31850
- *    @param  [in] uint8_t sp[] tableau registre MAX31850
- *    @param  [out] float temperature thermocouple degre Celsuis
- *    @return OW_OK si erreur retourne ERROR
- *    @date 04/12/2013
- *
- */
- int MAX31850_Temp_TC(uint8_t *sp,float *temp) ;
- 
-/**
- *    @brief  lecture  temperature cold junction MAX31850
- *    @param  [in] uint8_t sp[] tableau registre MAX31850
- *    @param  [out] float temperature cold junction degre Celsuis
- *    @return OW_OK si erreur retourne ERROR
- *    @date 04/12/2013
- *
- */
-int MAX31850_Temp_CJ(uint8_t *sp,float *temp) ;
-
-/**
- *    @brief  start convertion MAX31850
- *    @param  [in] uint8_t id[] tableau d'identifiant OW
- *    @param  [in] uint8_t n bus ow
- *    @return OW_OK 
- *    @date 02/12/2013
- *
- */
-int MAX31850_Start_meas(uint8_t id[],uint8_t n);
-#endif 
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/crc16.cpp
--- a/OneWire/crc16.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-#include <inttypes.h>
-#include "mbed.h"
-#include "onewire.h"
-
-#define CRC16INIT    0x0000
-//#define CRC16POLY    0x8005; // Polynome =x^16 + x^15 + x^2 + x^0 = 0x18005
-#define CRC16POLY    0xA001;
-
-uint16_t crc16(uint8_t* octets, uint16_t nboctets)
-{
-uint16_t crc = CRC16INIT;
-int i, done = 0;
-uint8_t todo;
-    if (nboctets != 0) {
-        do {
-            todo = octets[done];
-            crc ^= todo;
-            for (i = 0; i < 8; i++) {
-                if (crc % 2 != 0) {
-                    crc = (crc >> 1) ^ CRC16POLY;
-                } else {
-                    crc = crc >> 1;
-                }
-            }
-            done++;
-        } while (done < nboctets);
-        
-        
-    }
-
-return crc;
-}
-//CRC16 byte, always two bytes, bit inverted, LSByte first 
-uint8_t ctrl_crc16(uint8_t* octets, uint16_t nboctets)
-{
-    uint16_t crc;
-    uint8_t *ptr;
-#ifdef DEBUG
-    printf( "\nCRC16 : " );
-    for ( uint8_t i=0 ; i< nboctets; i++ )
-        printf(":%2.2X",octets[i]);
-    printf( "\n" );
-#endif
-    crc =~crc16(octets, nboctets-2);
-    ptr=(uint8_t*)&crc;
-#ifdef DEBUG
-    printf( "\n" );
-    printf("CRC16:%X",crc);
-    printf( "\n" );
-#endif
-    if(*ptr==octets[nboctets-2])
-        if(*++ptr==octets[nboctets-1])
-            return 0;
-
-    return 1;
- } 
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/crc16.h
--- a/OneWire/crc16.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-#ifndef _CRC16_
-#define _CRC16_
-uint16_t crc16(uint8_t* octets, uint16_t nboctets);
-uint8_t ctrl_crc16(uint8_t* octets, uint16_t nboctets);
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/crc8.cpp
--- a/OneWire/crc8.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#include <inttypes.h>
-
-#define CRC8INIT    0x00
-#define CRC8POLY    0x18              //0X18 = X^8+X^5+X^4+X^0
-
-uint8_t    crc8 ( uint8_t *data_in, uint16_t number_of_bytes_to_read )
-{
-    uint8_t     crc;
-    uint16_t loop_count;
-    uint8_t  bit_counter;
-    uint8_t  data;
-    uint8_t  feedback_bit;
-    
-    crc = CRC8INIT;
-
-    for (loop_count = 0; loop_count != number_of_bytes_to_read; loop_count++)
-    {
-        data = data_in[loop_count];
-        
-        bit_counter = 8;
-        do {
-            feedback_bit = (crc ^ data) & 0x01;
-    
-            if ( feedback_bit == 0x01 ) {
-                crc = crc ^ CRC8POLY;
-            }
-            crc = (crc >> 1) & 0x7F;
-            if ( feedback_bit == 0x01 ) {
-                crc = crc | 0x80;
-            }
-        
-            data = data >> 1;
-            bit_counter--;
-        
-        } while (bit_counter > 0);
-    }
-    
-    return crc;
-}
diff -r b4277f7c538e -r 031e71e61e80 OneWire/crc8.h
--- a/OneWire/crc8.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-#ifndef _CRC8_
-#define _CRC8_
-uint8_t    crc8 (uint8_t* data_in, uint16_t number_of_bytes_to_read);
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/onewire.cpp
--- a/OneWire/onewire.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,575 +0,0 @@
-/**
-* @file onewire.c
-* @brief library 1-Wire(www.maxim-ic.com)
-* @author Maciej Rajtar (Published 10 May 2010 www.mbed.org)
-* @author Frederic BLANC (Published 01/03/2012 www.mbed.org)
-*/
-
-#include "mbed.h"
-#include "onewire.h"
-
-DigitalInOut ow_pin(p21);
-DigitalInOut ow_0(p21);
-DigitalInOut ow_1(p22);
-DigitalInOut ow_2(p23);
-DigitalInOut ow_3(p24);
-DigitalInOut* t_ow[4]={&ow_0,&ow_1,&ow_2,&ow_3}; 
-
-//**********************************************************************************************************
-//*                                  show_id
-//**********************************************************************************************************
-  
-
-/**
-*     @brief show_id
-*    @param  [in] id[] = rom_code
-*    @param  [out] text id
-*     @date 02/12/2013
-*/
-char* ow_show_id( uint8_t id[],char *text) {
-
-    char hex[4];
-    sprintf(text,"");
-    sprintf(hex,"%2.2X",id[0]);
-        strcat(text,hex);   
-    for (int i = OW_ROMCODE_SIZE-2; i >=1 ; --i ) {
-        sprintf(hex,"%2.2X",id[i]);
-        strcat(text,hex);       
-    }
-    sprintf(hex,"%2.2X",id[OW_ROMCODE_SIZE-1]);
-        strcat(text,hex); 
-        return text; 
-    
-}
-//**********************************************************************************************************
-//*                                  show_id
-//**********************************************************************************************************
-  
-
-/**
-*     @brief uint64_id
-*    @param  [in] id[] = rom_code
-*    @return  [out] uint64_t id
-*     @date 28/03/2011
-*/
-uint64_t uint64_id( uint8_t id[]) {
-
-    uint64_t *ptr;
-    
-    ptr=(uint64_t *) &id[0];
-    
-    return *ptr;
-}
-//**********************************************************************************************************
-//*                                  search_sensors
-//**********************************************************************************************************
-
-/**
-*     @brief search_sensors
-*    @param  [out] nSensors number of device onewire
-*    @param  [out] gSensorIDs[][] array of id romcode
-*    @return OW_OK or OW_PRESENCE_ERR or OW_DATA_ERR
-*     @date 20/06/2011
-*/
-uint8_t search_sensors(uint8_t *nSensors,uint8_t gSensorIDs[][OW_ROMCODE_SIZE] ) {
-    
-
-    uint8_t i;
-    uint8_t id[OW_ROMCODE_SIZE];
-    uint8_t diff;
-    //printf( "Scanning Bus\r\n" );
-    diff = OW_SEARCH_FIRST;
-    for (*nSensors = 0 ; (diff != OW_LAST_DEVICE) && (*nSensors < MAXSENSORS) ;++(*nSensors) ) {
-        ow_find_sensor( &diff, &id[0] );
-        if ( diff == OW_PRESENCE_ERR ) {
-            //printf( "No Sensor found\r\n" );
-            return diff;
-        }
-        if ( diff == OW_DATA_ERR ) {
-            //printf( "Bus Error\r\n" );
-            return diff;
-        }
-        for (i=0;i<OW_ROMCODE_SIZE;i++)
-            gSensorIDs[*nSensors][i]=id[i];
-
-    }
-    return OW_OK;
-}
-/**
-*     @brief search_sensors
-*   @param [in] n num bus onewire
-*    @param  [out] nSensors number of device onewire
-*    @param  [out] gSensorIDs[][][] array of id romcode
-*    @return OW_OK or OW_PRESENCE_ERR or OW_DATA_ERR
-*     @date 02/09/2011
-*/
-uint8_t search_sensors(uint8_t n,uint8_t *nSensors,uint8_t gSensorIDs[][MAXSENSORS][OW_ROMCODE_SIZE] ) {
-    
-
-    uint8_t i;
-    uint8_t id[OW_ROMCODE_SIZE];
-    uint8_t diff;
-    //printf( "Scanning Bus %d\r\n",n );
-    diff = OW_SEARCH_FIRST;
-    for (*nSensors = 0 ; (diff != OW_LAST_DEVICE) && (*nSensors < MAXSENSORS) ;++(*nSensors) ) {
-        ow_find_sensor(n, &diff, &id[0] );
-        if ( diff == OW_PRESENCE_ERR ) {
-            //printf( "No Sensor found\r\n" );
-            return diff;
-        }
-        if ( diff == OW_DATA_ERR ) {
-            //printf( "Bus Error\r\n" );
-            return diff;
-        }
-        for (i=0;i<OW_ROMCODE_SIZE;i++){
-            gSensorIDs[n][*nSensors][i]=id[i];
-            //printf( "id[%d]=%d\r\n" ,i,id[i]);
-        }
-
-    }
-    return OW_OK;
-}
-//**********************************************************************************************************
-//*                                  find Sensors on 1-Wire-Bus
-//**********************************************************************************************************
-
-/**
-*     @brief find Sensors on 1-Wire-Bus
-*    @param  [in/out] diff is the result of the last rom-search
-*    @param  [out] is the rom-code of the sensor found
-*    @return  OW_OK or OW_ERROR 
-*     @date 20/06/2011
-*/
-uint8_t ow_find_sensor(uint8_t *diff, uint8_t id[]) {
-    for (;;) 
-    {
-        *diff = ow_rom_search( *diff, &id[0] );
-        if ( *diff==OW_PRESENCE_ERR)
-            return OW_ERROR;
-        if ( *diff==OW_DATA_ERR )
-            return OW_ERROR;
-        if ( *diff == OW_LAST_DEVICE )
-            return OW_OK ;
-        if ( id[0] == DS18B20_ID || id[0] == DS18S20_ID ) 
-            return OW_OK ;
-        if ( id[0] == DS2450_ID ) 
-            return OW_OK ;
-        if ( id[0] == MAX31850_ID ) 
-            return OW_OK ;
-    }
-}
-
-/**
-*     @brief find Sensors on 1-Wire-Bus
-*    @param  [in] num bus onewire
-*    @param  [in/out] diff is the result of the last rom-search
-*    @param  [out] is the rom-code of the sensor found
-*    @return  OW_OK or OW_ERROR
-*     @date 30/08/2011 
-*/
-uint8_t ow_find_sensor(uint8_t n,uint8_t *diff, uint8_t id[]) {
-    for (;;) 
-    {
-        *diff = ow_rom_search(n, *diff, &id[0] );
-        if ( *diff==OW_PRESENCE_ERR)
-            return OW_ERROR;
-        if ( *diff==OW_DATA_ERR )
-            return OW_ERROR;
-        if ( *diff == OW_LAST_DEVICE )
-            return OW_OK ;
-        if ( id[0] == DS18B20_ID || id[0] == DS18S20_ID ) 
-            return OW_OK ;
-        if ( id[0] == DS2450_ID ) 
-            return OW_OK ;
-        if ( id[0] == MAX31850_ID ) 
-            return OW_OK ;
-    }
-}
-//**********************************************************************************************************
-//*                                  search romcode
-//**********************************************************************************************************
-
-/**
-*     @brief search romcode
-*    @param  [in] uint8_t diff
-*    @param  [out] id romcode
-*    @return next_diff or OW_LAST_DEVICE or OW_DATA_ERR or OW_PRESENCE_ERR
-*     @date 20/06/2011
-*/
-uint8_t ow_rom_search( uint8_t diff, uint8_t id[] ) {
-    uint8_t i, j, next_diff;
-    uint8_t b;
-
-    if ( ow_reset() )
-        return OW_PRESENCE_ERR;    // error, no device found
-    ow_byte_wr( OW_SEARCH_ROM );            // ROM search command
-    next_diff = OW_LAST_DEVICE;            // unchanged on last device
-    i = OW_ROMCODE_SIZE * 8;                    // 8 bytes
-    do {
-        j = 8;                                // 8 bits
-        do {
-            b = ow_bit_io( 1 );                // read bit
-            if ( ow_bit_io( 1 ) ) {            // read complement bit
-                if ( b )                    // 11
-                    return OW_DATA_ERR;        // data error
-            } else {
-                if ( !b ) {                    // 00 = 2 devices
-                    if ( diff > i || ((*id & 1) && diff != i) ) {
-                        b = 1;                // now 1
-                        next_diff = i;        // next pass 0
-                    }
-                }
-            }
-            ow_bit_io( b );                 // write bit
-            *id >>= 1;
-            if ( b ) 
-                *id |= 0x80;            // store bit
-            --i;
-        } while ( --j );
-        id++;                                // next byte
-    } while ( i );
-    return next_diff;                // to continue search
-}
-/**
-*     @brief search romcode
-*    @param  [in]n num bus onewire
-*    @param  [in] uint8_t diff
-*    @param  [out] id romcode
-*    @return next_diff or OW_LAST_DEVICE or OW_DATA_ERR or OW_PRESENCE_ERR
-*     @date 30/08/2011
-*/
-uint8_t ow_rom_search(uint8_t n, uint8_t diff, uint8_t id[] ) {
-    uint8_t i, j, next_diff;
-    uint8_t b;
-    if ( ow_reset(n) )
-        return OW_PRESENCE_ERR;    // error, no device found
-    ow_byte_wr(n, OW_SEARCH_ROM );            // ROM search command 
-    next_diff = OW_LAST_DEVICE;            // unchanged on last device
-    i = OW_ROMCODE_SIZE * 8;                    // 8 bytes
-    do {
-        j = 8;                                // 8 bits
-        do {
-            b = ow_bit_io(n, 1 );                // read bit
-            if ( ow_bit_io(n, 1 ) ) {            // read complement bit
-                if ( b )                    // 11
-                {
-                   
-                    return OW_DATA_ERR;        // data error
-                }
-            } else {
-                if ( !b ) {                    // 00 = 2 devices
-                    if ( diff > i || ((*id & 1) && diff != i) ) {
-                        b = 1;                // now 1
-                        next_diff = i;        // next pass 0
-                    }
-                }
-            }
-            ow_bit_io(n, b );                 // write bit
-            
-            *id >>= 1;
-            if ( b ) 
-                *id |= 0x80;            // store bit
-            --i;
-        } while ( --j );
-        id++;                                // next byte
-        
-    } while ( i );
-
-
-    return next_diff;                // to continue search
-}
-
-
-//**********************************************************************************************************
-//*                                  test pin onewire bus
-//**********************************************************************************************************
-/**
-*     @brief test pin onewire bus
-*    @return etat pin ow
-*     @date 20/06/2011
-*/
-uint8_t ow_test_pin (void){
-    if (ow_pin)
-        return 1;
-return 0;   
-}
-
-/**
-*     @brief test pin onewire bus
-*       @param [in] num bus one wire
-*    @return etat pin ow
-*     @date 30/08/2011
-*/
-uint8_t ow_test_pin (uint8_t n){
-
-       if (*t_ow[n])
-            return 1;
-return 0; 
-}
-
-//**********************************************************************************************************
-//*                                  onewire reset bus
-//**********************************************************************************************************
-/**
-*     @brief onewire reset bus
-*    @return pin ow or OW_SHORT_CIRCUIT
-*     @date 20/06/2011
-*/
-uint8_t ow_reset(void) { // reset.  Should improve to act as a presence pulse
-    uint8_t err;
-
-    ow_pin.output();
-    ow_pin = 0;     // bring low for 500 us
-    wait_us(500);
-    ow_pin.input();
-    wait_us(60);
-    err = ow_pin;
-    wait_us(240);
-    if ( ow_pin == 0 )    {    // short circuit
-        err = OW_SHORT_CIRCUIT;
-    }
-    return err;
-}
-
-/**
-*     @brief onewire reset bus
-*       @param [in] num bus onewire
-*    @return pin ow or OW_SHORT_CIRCUIT
-*     @date 30/08/2011
-*/
-uint8_t ow_reset(uint8_t n) { // reset.  Should improve to act as a presence pulse
-    uint8_t err;
-    
-    t_ow[n]->output();
-    *t_ow[n] = 0;     // bring low for 500 us
-    wait_us(500);
-    t_ow[n]->input();
-    wait_us(60);
-    err = *t_ow[n];
-    wait_us(240);
-    if ( *t_ow[n] == 0 )    {    // short circuit
-        err = OW_SHORT_CIRCUIT;
-        
-    }
-    return err;
-}
-//**********************************************************************************************************
-//*                                  read write onewire
-//**********************************************************************************************************
-/**
-*     @brief read write onewire
-*    @param  [in/out] b data
-*    @return data
-*     @date 20/06/2011
-*/
-uint8_t ow_bit_io( uint8_t b ) {
-
-    ow_pin.output(); // drive bus low
-    ow_pin = 0;
-    wait_us(1); // Recovery-Time wuffwuff was 1
-    
-    if ( b ) 
-        ow_pin.input(); // if bit is 1 set bus high (by ext. pull-up)
-    //  delay was 15uS-1 see comment above
-    wait_us(15-1);
-    if ( ow_pin == 0 ) b = 0; // sample at end of read-timeslot
-    wait_us(60-15);
-    ow_pin.input();
-    return b;
-}
-/**
-*     @brief read write onewire
-*    @param  [in] n num bus onewire
-*    @param  [in/out] b data
-*    @return data
-*     @date 30/08/2011
-*/
-uint8_t ow_bit_io(uint8_t n, uint8_t b ) {
-
-    t_ow[n]->output(); // drive bus low
-    *t_ow[n] = 0;
-    wait_us(1); // Recovery-Time wuffwuff was 1
-    
-    if ( b ) 
-        t_ow[n]->input(); // if bit is 1 set bus high (by ext. pull-up)
-    //  delay was 15uS-1 see comment above
-    wait_us(15-1);
-    if ( *t_ow[n] == 0 ) b = 0; // sample at end of read-timeslot
-    wait_us(60-15);
-    t_ow[n]->input();
-   // printf("ow_bit_io n=%d b=%X\n",n,b);
-    return b;
-}
-//**********************************************************************************************************
-//*                                  byte write on onewire
-//**********************************************************************************************************
-/**
-*     @brief byte write on onewire
-*    @param  [in] b data
-*    @return data
-*     @date 20/06/2011
-*/
-uint8_t ow_byte_wr( uint8_t b ) {
-    uint8_t i = 8, j;
-
-    do {
-        j = ow_bit_io( b & 1 );
-        b >>= 1;
-        if ( j )
-            b |= 0x80;
-    } while ( --i );
-    return b;
-}
-/**
-*     @brief byte write on onewire
-*    @param  [in] n num bus onewire
-*    @param  [in] b data
-*    @return data
-*     @date 30/08/2011
-*/
-uint8_t ow_byte_wr(uint8_t n, uint8_t b ) {
-    uint8_t i = 8, j;
-
-    do {
-        j = ow_bit_io(n, b & 1 );
-        b >>= 1;
-        if ( j )
-            b |= 0x80;
-    } while ( --i );
-    return b;
-}
-//**********************************************************************************************************
-//*                                  byte write on onewire
-//**********************************************************************************************************
-/**
-*     @brief byte read on onewire
-*       @return data
-*     @date 20/06/2011
-*/
-uint8_t ow_byte_rd( void ) {
-    // read by sending 0xff (a dontcare?)
-    return ow_byte_wr( 0xFF );
-}
-
-/**
-*     @brief byte read on onewire
-*    @param  [in] n num onewire
-*    @return data
-*     @date 30/08/2011
-*/
-uint8_t ow_byte_rd( uint8_t n) {
-    // read by sending 0xff (a dontcare?)
-    return ow_byte_wr(n, 0xFF );
-}
-//**********************************************************************************************************
-//*                                  byte write on onewire
-//**********************************************************************************************************
-/**
-*     @brief write command
-*    @param  [in] command
-*    @param  [in] id romcode
-*     @date 20/06/2011
-*/
-uint8_t ow_command( uint8_t command, uint8_t id[] ) {
-    uint8_t i;
-
-    ow_reset();
-    if ( id ) {
-        ow_byte_wr( OW_MATCH_ROM );            // to a single device
-        i = OW_ROMCODE_SIZE;
-        do {
-            ow_byte_wr( *id );
-            ++id;
-        } while ( --i );
-    } else {
-        ow_byte_wr( OW_SKIP_ROM );            // to all devices
-    }
-    ow_byte_wr( command );
-    return 0;
-}
-/**
-*     @brief write command
-*    @param  [in] n num bus onewire
-*    @param  [in] command
-*    @param  [in] id romcode
-*     @date 30/08/2011
-*/
-uint8_t ow_command(uint8_t n, uint8_t command, uint8_t id[] ) {
-    uint8_t i;
-
-    ow_reset(n);
-    if ( id ) {
-        ow_byte_wr( n,OW_MATCH_ROM );            // to a single device
-        i = OW_ROMCODE_SIZE;
-        do {
-            ow_byte_wr(n, *id );
-            ++id;
-        } while ( --i );
-    } else {
-        ow_byte_wr(n, OW_SKIP_ROM );            // to all devices
-    }
-    ow_byte_wr(n, command );
-    return 0;
-}
-//**********************************************************************************************************
-//*                                  ow mode
-//**********************************************************************************************************
-/**
-*     @brief parasite enable
-*     @date 20/06/2011
-*/
-uint8_t ow_parasite_enable(void) {
-    ow_pin.output();
-    ow_pin = 1;
-    return 0;
-}
-/**
-*     @brief parasite disable
-*     @date 20/06/2011
-*/
-uint8_t ow_parasite_disable(void) {
-
-    ow_pin.input();
-    return 0;
-}
-
-/**
-*     @brief parasite enable
-*    @param  [in] n num bus onewire
-*     @date 30/08/2011
-*/
-uint8_t ow_parasite_enable(uint8_t n) {
-    t_ow[n]->output();
-    *t_ow[n] = 1;
-    return 0;
-}
-/**
-*     @brief parasite disable
-*    @param  [in] n num bus onewire
-*     @date 30/08/2011
-*/
-uint8_t ow_parasite_disable(uint8_t n) {
-    t_ow[n]->input();
-    return 0;
-}
-/**
-*     @brief PUL-UP bus OW
-*    @return OW_OK
-*     @date 20/06/2011
-*/
-uint8_t ow_PullUp(void)
-{
-    ow_pin.mode(PullUp); //PULL-UP bus OW
-return OW_OK;
-}
-/**
-*     @brief PUL-UP bus OW
-*    @param  [in] n num bus onewire
-*    @return OW_OK
-*     @date 30/08/2011
-*/
-uint8_t ow_PullUp(uint8_t n)
-{
-    t_ow[n]->mode(PullUp); //PULL-UP bus OW
-return OW_OK;
-}
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/onewire.h
--- a/OneWire/onewire.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/**
-* @file onewire.h
-* @brief library 1-Wire(www.maxim-ic.com)
-* @author Maciej Rajtar (Published 10 May 2010 www.mbed.org)
-* @author Frederic BLANC (Published 01/03/2012 www.mbed.org)
-*/
-
-#ifndef _onewire_
-#define _onewire_
-#include "DS2450.h"
-#include "DS18X20.h"
-#include "MAX31850.h"
-#include "crc8.h"
-#include "crc16.h"
-//#define DEBUG 1
-//#define DEBUG_L1 1
-#define ONEWIRE_PIN  p21
-
-#define MAXSENSORS 8
-#define MAXBUS 4
-// rom-code size including CRC
-#define OW_ROMCODE_SIZE 8
-
-#define OW_OK          0x00
-#define OW_ERROR       0x01
-#define OW_START_FAIL  0x02
-#define OW_ERROR_CRC   0x03
-#define OW_ERROR_BAD_ID 0x04
-#define OW_BUSY          0x05
-
-#define OW_MATCH_ROM    0x55
-#define OW_SKIP_ROM     0xCC
-#define OW_SEARCH_ROM   0xF0
-#define OW_READ_ROM     0x33
-#define OW_CONDITIONAL_SEARCH     0xEC
-#define OW_OVERDRIVE_SKIP_ROM     0x3C
-#define OW_OVERDRIVE_MATCH_ROM    0x69
-
-#define OW_SHORT_CIRCUIT   0xFF
-#define OW_SEARCH_FIRST    0xFF        // start new search
-#define OW_PRESENCE_ERR    0x01
-#define OW_DATA_ERR        0xFE
-#define OW_LAST_DEVICE     0x00        // last device found
-//            0x01 ... 0x40: continue searching
-
-
-
-char* ow_show_id( uint8_t id[],char *text); 
-uint64_t uint64_id( uint8_t id[]);
-
-uint8_t search_sensors(uint8_t *nSensors,uint8_t id[][OW_ROMCODE_SIZE] );
-uint8_t search_sensors(uint8_t n,uint8_t *nSensors,uint8_t gSensorIDs[][MAXSENSORS][OW_ROMCODE_SIZE] );
-uint8_t ow_PullUp(void);
-uint8_t ow_PullUp(uint8_t n);
-
-
-uint8_t ow_test_pin (void);
-uint8_t ow_test_pin (uint8_t n);
-uint8_t ow_reset(void);
-uint8_t ow_reset(uint8_t n);
-uint8_t ow_rom_search( uint8_t diff, uint8_t id[] );
-uint8_t ow_rom_search(uint8_t n, uint8_t diff, uint8_t id[] );
-uint8_t ow_command( uint8_t command, uint8_t id[] );
-uint8_t ow_command(uint8_t n, uint8_t command, uint8_t id[] );
-uint8_t ow_find_sensor(uint8_t *diff, uint8_t id[]);
-uint8_t ow_find_sensor(uint8_t n,uint8_t *diff, uint8_t id[]);
-uint8_t ow_parasite_enable(void);
-uint8_t ow_parasite_enable(uint8_t n);
-uint8_t ow_parasite_disable(void);
-uint8_t ow_parasite_disable(uint8_t n);
-uint8_t ow_bit_io( uint8_t b );
-uint8_t ow_bit_io(uint8_t n, uint8_t b);
-uint8_t ow_byte_wr( uint8_t b );
-uint8_t ow_byte_wr(uint8_t n, uint8_t b );
-uint8_t ow_byte_rd( void );
-uint8_t ow_byte_rd( uint8_t n);
-
-
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/utils.cpp
--- a/OneWire/utils.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#include <stdint.h>
-
-uint16_t uint8_to_uint16(uint8_t lsb, uint8_t msb)
-{
-    uint16_t data;
-    uint8_t *ptr;
-    
-    ptr=(uint8_t*)&data;
-    *ptr=lsb;
-    *++ptr=msb;
-    return data;
-}
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 OneWire/utils.h
--- a/OneWire/utils.h	Mon Jun 02 13:17:18 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-#ifndef _utils_
-#define _utils_
-uint16_t uint8_to_uint16(uint8_t lsb, uint8_t msb);
-#endif
\ No newline at end of file
diff -r b4277f7c538e -r 031e71e61e80 main.cpp
--- a/main.cpp	Mon Jun 02 13:17:18 2014 +0000
+++ b/main.cpp	Wed Sep 28 06:46:10 2016 +0000
@@ -1,3 +1,9 @@
+/**
+ *  @brief MAX31850
+ *  @date 02/06/2014
+ *  @author F.BLANC LAAS-CNRS
+ *
+ */
 #include "mbed.h"
 #include <stdint.h>
 #include <string.h>