Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:eb3bd21fba0b, 2017-03-22 (annotated)
- Committer:
- ronaldhklee
- Date:
- Wed Mar 22 04:54:35 2017 +0000
- Revision:
- 1:eb3bd21fba0b
- Parent:
- 0:599009dbb3e5
Tobj_max = 60, Tobj_min = 0, Ta=50~0;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ronaldhklee | 0:599009dbb3e5 | 1 | #include "mbed.h" |
ronaldhklee | 0:599009dbb3e5 | 2 | #include "mlx90614.h" |
ronaldhklee | 0:599009dbb3e5 | 3 | |
ronaldhklee | 0:599009dbb3e5 | 4 | DigitalOut myled(LED1); |
ronaldhklee | 0:599009dbb3e5 | 5 | |
ronaldhklee | 1:eb3bd21fba0b | 6 | int SAddr = DEFAULT_SADDR; |
ronaldhklee | 0:599009dbb3e5 | 7 | float temp = 0; |
ronaldhklee | 1:eb3bd21fba0b | 8 | char c; |
ronaldhklee | 1:eb3bd21fba0b | 9 | //uint16_t pwmreg; |
ronaldhklee | 0:599009dbb3e5 | 10 | |
ronaldhklee | 0:599009dbb3e5 | 11 | int main() { |
ronaldhklee | 1:eb3bd21fba0b | 12 | if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX) != TOBJ_P60) |
ronaldhklee | 1:eb3bd21fba0b | 13 | MLX90614_EEPROM_Write(SAddr, EEPROM_T0MAX, TOBJ_P60); |
ronaldhklee | 1:eb3bd21fba0b | 14 | if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN) != TOBJ_PM0) |
ronaldhklee | 1:eb3bd21fba0b | 15 | MLX90614_EEPROM_Write(SAddr, EEPROM_T0MIN, TOBJ_PM0); |
ronaldhklee | 1:eb3bd21fba0b | 16 | if (MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL) != DEFAULT_PWMCTRL) |
ronaldhklee | 1:eb3bd21fba0b | 17 | MLX90614_EEPROM_Write(SAddr, EEPROM_PWMCTRL, DEFAULT_PWMCTRL); |
ronaldhklee | 1:eb3bd21fba0b | 18 | if (MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE) != (uint16_t)(TAMB_P50 << 8 | TAMB_PM0)) |
ronaldhklee | 1:eb3bd21fba0b | 19 | MLX90614_EEPROM_Write(SAddr, EEPROM_TARANGE, (uint16_t)(TAMB_P50 << 8 | TAMB_PM0)); |
ronaldhklee | 1:eb3bd21fba0b | 20 | if (MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1) != DEFAULT_CONFIGREG1) |
ronaldhklee | 1:eb3bd21fba0b | 21 | MLX90614_EEPROM_Write(SAddr, EEPROM_CONFIGREG1, DEFAULT_CONFIGREG1); |
ronaldhklee | 1:eb3bd21fba0b | 22 | //wait(5); |
ronaldhklee | 1:eb3bd21fba0b | 23 | printf(" EEPROM_T0MAX = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX)); |
ronaldhklee | 1:eb3bd21fba0b | 24 | printf(" EEPROM_T0MIN = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN)); |
ronaldhklee | 1:eb3bd21fba0b | 25 | printf(" EEPROM_PWMCTRL = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL)); |
ronaldhklee | 1:eb3bd21fba0b | 26 | printf(" EEPROM_TARANGE = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE)); |
ronaldhklee | 1:eb3bd21fba0b | 27 | printf(" EEPROM_ECCOEF = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_ECCOEF)); |
ronaldhklee | 1:eb3bd21fba0b | 28 | printf(" EEPROM_CONFIGREG1 = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1)); |
ronaldhklee | 0:599009dbb3e5 | 29 | SAddr = MLX90614_SA_Read(); |
ronaldhklee | 1:eb3bd21fba0b | 30 | printf(" EEPROM_SMBUSADDR = 0x%X. \n\r", SAddr); |
ronaldhklee | 1:eb3bd21fba0b | 31 | if (SAddr == ERROR_ADDR_CRC8) |
ronaldhklee | 0:599009dbb3e5 | 32 | { |
ronaldhklee | 0:599009dbb3e5 | 33 | SAddr = MLX90614_SA_Scan(); |
ronaldhklee | 0:599009dbb3e5 | 34 | printf(" MLX90614 Slave Address Find = 0x%X. \n\r", SAddr); |
ronaldhklee | 0:599009dbb3e5 | 35 | } |
ronaldhklee | 1:eb3bd21fba0b | 36 | do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 0:599009dbb3e5 | 37 | printf(" Ambient temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 38 | do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 0:599009dbb3e5 | 39 | printf(" Object 1 temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 40 | do temp = getTempC_Obj2(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 0:599009dbb3e5 | 41 | printf(" Object 2 temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 42 | |
ronaldhklee | 1:eb3bd21fba0b | 43 | |
ronaldhklee | 1:eb3bd21fba0b | 44 | fflush(stdin); printf(" Press any Key......"); |
ronaldhklee | 1:eb3bd21fba0b | 45 | scanf("%c", &c); |
ronaldhklee | 0:599009dbb3e5 | 46 | |
ronaldhklee | 0:599009dbb3e5 | 47 | while(1) { |
ronaldhklee | 1:eb3bd21fba0b | 48 | printf("\033[2J\033[1;1H"); fflush(stdout); |
ronaldhklee | 1:eb3bd21fba0b | 49 | do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 1:eb3bd21fba0b | 50 | printf(" Ambient temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 51 | do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 1:eb3bd21fba0b | 52 | printf(" Object 1 temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 53 | do temp = getTempC_Obj2(SAddr); while(temp == ERROR_TEMP_CRC8); |
ronaldhklee | 1:eb3bd21fba0b | 54 | printf(" Object 2 temperature = %.2f\r\n", temp); |
ronaldhklee | 1:eb3bd21fba0b | 55 | |
ronaldhklee | 0:599009dbb3e5 | 56 | myled = 1; // LED is ON |
ronaldhklee | 1:eb3bd21fba0b | 57 | wait(0.5); // 1000 ms |
ronaldhklee | 1:eb3bd21fba0b | 58 | |
ronaldhklee | 0:599009dbb3e5 | 59 | myled = 0; // LED is OFF |
ronaldhklee | 1:eb3bd21fba0b | 60 | wait(0.5); // 1 sec |
ronaldhklee | 0:599009dbb3e5 | 61 | } |
ronaldhklee | 0:599009dbb3e5 | 62 | } |