Maxim Integrated / Mbed 2 deprecated MAX31856_example_program

Dependencies:   MAX31856 mbed

Fork of MAX31856_example_program by Central Applications - Mbed Code repo

Revision:
9:2d284cc2f65c
Parent:
8:8723d0006097
Child:
10:4b907f32b4d4
--- a/MAX31856.cpp	Tue Aug 01 03:29:15 2017 +0000
+++ b/MAX31856.cpp	Tue Aug 01 03:37:57 2017 +0000
@@ -473,85 +473,42 @@
 }
 
 
-////Register:MASK    Bits: 5:0
-////******************************************************************************
-//float MAX31856::setFaultThresholds(uint8_t val, bool enable_mask, float temperature) 
-//{
-//    float return_val;
-//    uint8_t temp_val;
-//    if(enable_mask) {
-//        temp_val=0;
-//    }
-//    else {
-//        temp_val=val;
-//    }
-//    if      (val==MASK_CJ_FAULT_THRESHOLD_HIGH) {          //Cold Junction High Threshold Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_5, temp_val);
-//        
-//        int8_t temperature_byte=temperature;
-//        
-//        if      (temperature_byte>CJ_MAX_VAL_FAULT)
-//            temperature_byte=CJ_MAX_VAL_FAULT;
-//        else if (temperature_byte<=0 || temperature_byte>=CJ_MIN_VAL_FAULT)            
-//            temperature_byte=twosComplimentToSigned8(temperature_byte);    //Convert the 2's compliment int into a signed value
-//        else if (temperature_byte<CJ_MIN_VAL_FAULT)
-//            temperature_byte=twosComplimentToSigned8(CJ_MIN_VAL_FAULT);    //Convert the 2's compliment int into a signed value
-//        //else the data is within range, no more manipulation of data is needed
-//        return_val=registerWriteByte(ADDRESS_CJHF_WRITE, temperature_byte);
-//    }
-//    else if (val==MASK_CJ_FAULT_THRESHOLD_LOW) {           //Cold Junction Low  Threshold Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_4, temp_val);
-//        
-//        int8_t temperature_byte=temperature;
-//        
-//        if      (temperature_byte>CJ_MAX_VAL_FAULT)
-//            temperature_byte=CJ_MAX_VAL_FAULT;
-//        else if (temperature_byte<=0 || temperature_byte>=CJ_MIN_VAL_FAULT) 
-//            temperature_byte=twosComplimentToSigned8(temperature_byte);    //Convert the 2's compliment int into a signed value
-//        else if (temperature_byte<CJ_MIN_VAL_FAULT)
-//            temperature_byte=twosComplimentToSigned8(CJ_MIN_VAL_FAULT);    //Convert the 2's compliment int into a signed value
-//        //else the data is within range, no more manipulation of data is needed
-//        
-//        return_val=registerWriteByte(ADDRESS_CJLF_WRITE, temperature_byte);
-//    }
-//    else if (val==MASK_TC_FAULT_THRESHOLD_HIGH) {          //Thermocouple High Threshold Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_3, temp_val);
-//        
-//        if (temperature) {
-//            int8_t temperature_byte[2];
-//            int16_t temperature_multi_byte =(int16_t)(temperature*4.0);
-//            if      (temperature_multi_byte>(TC_MAX_VAL_FAULT*4.0f))                     
-//                temperature_multi_byte=TC_MAX_VAL_FAULT*4.0f;
-//            else if (temperature_multi_byte<=0 || temperature_multi_byte>=(TC_MIN_VAL_FAULT*4.0f)) 
-//                temperature_multi_byte=twosComplimentToSigned16(temperature_multi_byte);    //Convert the 2's compliment int into a signed value
-//            else if (temperature_multi_byte<(TC_MIN_VAL_FAULT*4.0f))
-//                temperature_multi_byte=twosComplimentToSigned16(TC_MIN_VAL_FAULT*4.0f);    //Convert the 2's compliment int into a signed value
-//            
-//            //now split up the 32bit int into two bytes to program the registers with
-//            temperature_byte[0]=((uint8_t)((temperature_multi_byte)&(0xFF00) >> 8));
-//            temperature_byte[1]=((uint8_t)((temperature_multi_byte)&(0x00FF)));
-//            
-//            return_val=registerWriteByte(ADDRESS_LTHFTH_WRITE, temperature_byte[0]);
-//            return_val=registerWriteByte(ADDRESS_LTHFTL_WRITE, temperature_byte[1]);
-//            
-//            return_val=temperature;
-//        }
-////        else {
-////            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////return_val="WHATEVER IS IN THE REGISTERS WHEN YOU SET THE FLAG JUST INCASE YOU NEED TO SEE WHAT IS INSISIDE THE REGISTER";
-////        }
-//    }
-//    else if (val==MASK_TC_FAULT_THRESHOLD_LOW)            //Thermocouple Low  Threshold Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_2, temp_val);
-//    else if (val==MASK_OVER_UNDER_VOLT_FAULT)             //Over-Voltage/Under-Voltage Input Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_1, temp_val);
-//    else if (val==MASK_OPEN_CIRCUIT_FAULT)                //Thermocouple Open-Circuit Fault Mask
-//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_0, temp_val);
-//    else {
-//        LOG("Incorrect parameter selected for MASK Register. Default value not changed.\r\nPlease see MAX31856.h for list of valid parameters. \r\n"); 
-//        return_val=0; //returns a 0 to flag that the parameter wasn't programmed due to wrong parameter in function call
-//    }
-//    return return_val;
-//}
+//Register:MASK    Bits: 5:0
+//******************************************************************************
+bool MAX31856::setFaultThresholds(uint8_t val, float temperature) 
+{
+    if      (val==MASK_CJ_FAULT_THRESHOLD_HIGH) {          //Cold Junction High Threshold Fault Mask
+        int8_t temperature_byte=temperature;
+        return_val=registerWriteByte(ADDRESS_CJHF_WRITE, temperature_byte);
+    }
+    else if (val==MASK_CJ_FAULT_THRESHOLD_LOW) {           //Cold Junction Low  Threshold Fault Mask
+        int8_t temperature_byte=temperature;
+        return_val=registerWriteByte(ADDRESS_CJLF_WRITE, temperature_byte);
+    }
+    else if (val==MASK_TC_FAULT_THRESHOLD_HIGH) {          //Thermocouple High Threshold Fault Mask
+        int8_t temperature_byte[2];
+        int16_t temperature_multi_byte =temperature*4.0;
+        //now split up the 16bit int into two bytes to program the registers with
+        temperature_byte[0]=((uint8_t)((temperature_multi_byte)&(0xFF00) >> 8));
+        temperature_byte[1]=((uint8_t)((temperature_multi_byte)&(0x00FF)));
+        
+        return_val=registerWriteByte(ADDRESS_LTHFTH_WRITE, temperature_byte[0]);
+        return_val=registerWriteByte(ADDRESS_LTHFTL_WRITE, temperature_byte[1]);
+    }
+    else if (val==MASK_TC_FAULT_THRESHOLD_LOW) {          //Thermocouple LOW Threshold Fault Mask
+        int8_t temperature_byte[2];
+        int16_t temperature_multi_byte =temperature*4.0;
+        //now split up the 16bit int into two bytes to program the registers with
+        temperature_byte[0]=((uint8_t)((temperature_multi_byte)&(0xFF00) >> 8));
+        temperature_byte[1]=((uint8_t)((temperature_multi_byte)&(0x00FF)));
+        
+        return_val=registerWriteByte(ADDRESS_LTHFTH_WRITE, temperature_byte[0]);
+        return_val=registerWriteByte(ADDRESS_LTHFTL_WRITE, temperature_byte[1]);
+    }
+    else 
+        LOG("Please select correct threshold register to program with the correct value!\r\n");
+    return return_val;
+}
 
 //******************************************************************************
 bool MAX31856::coldJunctionOffset(float temperature)
@@ -766,3 +723,82 @@
 //    return temp;
 //}
 
+////Register:MASK    Bits: 5:0
+////******************************************************************************
+//float MAX31856::setFaultThresholds(uint8_t val, bool enable_mask, float temperature) 
+//{
+//    float return_val;
+//    uint8_t temp_val;
+//    if(enable_mask) {
+//        temp_val=0;
+//    }
+//    else {
+//        temp_val=val;
+//    }
+//    if      (val==MASK_CJ_FAULT_THRESHOLD_HIGH) {          //Cold Junction High Threshold Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_5, temp_val);
+//        
+//        int8_t temperature_byte=temperature;
+//        
+//        if      (temperature_byte>CJ_MAX_VAL_FAULT)
+//            temperature_byte=CJ_MAX_VAL_FAULT;
+//        else if (temperature_byte<=0 || temperature_byte>=CJ_MIN_VAL_FAULT)            
+//            temperature_byte=twosComplimentToSigned8(temperature_byte);    //Convert the 2's compliment int into a signed value
+//        else if (temperature_byte<CJ_MIN_VAL_FAULT)
+//            temperature_byte=twosComplimentToSigned8(CJ_MIN_VAL_FAULT);    //Convert the 2's compliment int into a signed value
+//        //else the data is within range, no more manipulation of data is needed
+//        return_val=registerWriteByte(ADDRESS_CJHF_WRITE, temperature_byte);
+//    }
+//    else if (val==MASK_CJ_FAULT_THRESHOLD_LOW) {           //Cold Junction Low  Threshold Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_4, temp_val);
+//        
+//        int8_t temperature_byte=temperature;
+//        
+//        if      (temperature_byte>CJ_MAX_VAL_FAULT)
+//            temperature_byte=CJ_MAX_VAL_FAULT;
+//        else if (temperature_byte<=0 || temperature_byte>=CJ_MIN_VAL_FAULT) 
+//            temperature_byte=twosComplimentToSigned8(temperature_byte);    //Convert the 2's compliment int into a signed value
+//        else if (temperature_byte<CJ_MIN_VAL_FAULT)
+//            temperature_byte=twosComplimentToSigned8(CJ_MIN_VAL_FAULT);    //Convert the 2's compliment int into a signed value
+//        //else the data is within range, no more manipulation of data is needed
+//        
+//        return_val=registerWriteByte(ADDRESS_CJLF_WRITE, temperature_byte);
+//    }
+//    else if (val==MASK_TC_FAULT_THRESHOLD_HIGH) {          //Thermocouple High Threshold Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_3, temp_val);
+//        
+//        if (temperature) {
+//            int8_t temperature_byte[2];
+//            int16_t temperature_multi_byte =(int16_t)(temperature*4.0);
+//            if      (temperature_multi_byte>(TC_MAX_VAL_FAULT*4.0f))                     
+//                temperature_multi_byte=TC_MAX_VAL_FAULT*4.0f;
+//            else if (temperature_multi_byte<=0 || temperature_multi_byte>=(TC_MIN_VAL_FAULT*4.0f)) 
+//                temperature_multi_byte=twosComplimentToSigned16(temperature_multi_byte);    //Convert the 2's compliment int into a signed value
+//            else if (temperature_multi_byte<(TC_MIN_VAL_FAULT*4.0f))
+//                temperature_multi_byte=twosComplimentToSigned16(TC_MIN_VAL_FAULT*4.0f);    //Convert the 2's compliment int into a signed value
+//            
+//            //now split up the 32bit int into two bytes to program the registers with
+//            temperature_byte[0]=((uint8_t)((temperature_multi_byte)&(0xFF00) >> 8));
+//            temperature_byte[1]=((uint8_t)((temperature_multi_byte)&(0x00FF)));
+//            
+//            return_val=registerWriteByte(ADDRESS_LTHFTH_WRITE, temperature_byte[0]);
+//            return_val=registerWriteByte(ADDRESS_LTHFTL_WRITE, temperature_byte[1]);
+//            
+//            return_val=temperature;
+//        }
+////        else {
+////            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////return_val="WHATEVER IS IN THE REGISTERS WHEN YOU SET THE FLAG JUST INCASE YOU NEED TO SEE WHAT IS INSISIDE THE REGISTER";
+////        }
+//    }
+//    else if (val==MASK_TC_FAULT_THRESHOLD_LOW)            //Thermocouple Low  Threshold Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_2, temp_val);
+//    else if (val==MASK_OVER_UNDER_VOLT_FAULT)             //Over-Voltage/Under-Voltage Input Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_1, temp_val);
+//    else if (val==MASK_OPEN_CIRCUIT_FAULT)                //Thermocouple Open-Circuit Fault Mask
+//        return_val=registerReadWriteByte(ADDRESS_MASK_READ, ADDRESS_MASK_WRITE, MASK_CLEAR_BITS_0, temp_val);
+//    else {
+//        LOG("Incorrect parameter selected for MASK Register. Default value not changed.\r\nPlease see MAX31856.h for list of valid parameters. \r\n"); 
+//        return_val=0; //returns a 0 to flag that the parameter wasn't programmed due to wrong parameter in function call
+//    }
+//    return return_val;
+//}
\ No newline at end of file