Ronald Lee / Mbed 2 deprecated MLX90614

Dependencies:   mbed

main.cpp

Committer:
ronaldhklee
Date:
2017-03-22
Revision:
1:eb3bd21fba0b
Parent:
0:599009dbb3e5

File content as of revision 1:eb3bd21fba0b:

#include "mbed.h"
#include "mlx90614.h"

DigitalOut myled(LED1);

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(" 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);
    }
    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);
    

    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(0.5); // 1000 ms

        myled = 0; // LED is OFF
        wait(0.5); // 1 sec
    }
}