Ronald Lee / Mbed 2 deprecated MLX90614

Dependencies:   mbed

Revision:
1:eb3bd21fba0b
Parent:
0:599009dbb3e5
diff -r 599009dbb3e5 -r eb3bd21fba0b main.cpp
--- a/main.cpp	Tue Mar 21 07:29:14 2017 +0000
+++ b/main.cpp	Wed Mar 22 04:54:35 2017 +0000
@@ -3,30 +3,60 @@
 
 DigitalOut myled(LED1);
 
-int SAddr = 0;
+int SAddr = DEFAULT_SADDR;
 float temp = 0;
+char c;
+//uint16_t pwmreg;
 
 int main() {
+    if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX) != TOBJ_P60) 
+        MLX90614_EEPROM_Write(SAddr, EEPROM_T0MAX, TOBJ_P60);
+    if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN) != TOBJ_PM0)
+        MLX90614_EEPROM_Write(SAddr, EEPROM_T0MIN, TOBJ_PM0);
+    if (MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL) != DEFAULT_PWMCTRL)
+        MLX90614_EEPROM_Write(SAddr, EEPROM_PWMCTRL, DEFAULT_PWMCTRL);
+    if (MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE) != (uint16_t)(TAMB_P50 << 8 | TAMB_PM0))
+        MLX90614_EEPROM_Write(SAddr, EEPROM_TARANGE, (uint16_t)(TAMB_P50 << 8 | TAMB_PM0));
+    if (MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1) != DEFAULT_CONFIGREG1)
+        MLX90614_EEPROM_Write(SAddr, EEPROM_CONFIGREG1, DEFAULT_CONFIGREG1);
+    //wait(5);
+    printf(" EEPROM_T0MAX = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX));
+    printf(" EEPROM_T0MIN = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN));
+    printf(" EEPROM_PWMCTRL = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL));
+    printf(" EEPROM_TARANGE = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE));
+    printf(" EEPROM_ECCOEF = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_ECCOEF));
+    printf(" EEPROM_CONFIGREG1 = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1));
     SAddr = MLX90614_SA_Read();
-    printf(" MLX90614 Slave Address Read = 0x%X. \n\r", SAddr);
-    if (SAddr == 0xff) 
+    printf(" EEPROM_SMBUSADDR = 0x%X. \n\r", SAddr);
+    if (SAddr == ERROR_ADDR_CRC8) 
     {
         SAddr = MLX90614_SA_Scan();
         printf(" MLX90614 Slave Address Find = 0x%X. \n\r", SAddr);
     }
-    
-    wait(0.1);   
-    do temp = getTempC_Ambi(SAddr); while(temp == 0xffffffff);
+    do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8);
     printf(" Ambient temperature = %.2f\r\n", temp);
-    do temp = getTempC_Obj1(SAddr); while(temp == 0xffffffff);
+    do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8);
     printf(" Object 1 temperature = %.2f\r\n", temp);
-    do temp = getTempC_Obj2(SAddr);  while(temp == 0xffffffff);
+    do temp = getTempC_Obj2(SAddr);  while(temp == ERROR_TEMP_CRC8);
     printf(" Object 2 temperature = %.2f\r\n", temp);
+    
+
+    fflush(stdin);  printf(" Press any Key......"); 
+    scanf("%c", &c);
 
     while(1) {
+        printf("\033[2J\033[1;1H"); fflush(stdout);
+        do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8);
+        printf(" Ambient temperature = %.2f\r\n", temp);
+        do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8);
+        printf(" Object 1 temperature = %.2f\r\n", temp);
+        do temp = getTempC_Obj2(SAddr);  while(temp == ERROR_TEMP_CRC8);
+        printf(" Object 2 temperature = %.2f\r\n", temp);
+        
         myled = 1; // LED is ON
-        wait(1.0); // 1000 ms
+        wait(0.5); // 1000 ms
+
         myled = 0; // LED is OFF
-        wait(1.0); // 1 sec
+        wait(0.5); // 1 sec
     }
 }