@@ -329,7 +329,7 @@ int16_t IRTherm::calcRawTemp(float calcTemp)
329
329
tempFloat = calcTemp;
330
330
}
331
331
// Then multiply by 0.02 degK / bit
332
- tempFloat *= 50 ;
332
+ tempFloat *= 50.0 ;
333
333
rawTemp = (int16_t ) tempFloat;
334
334
}
335
335
return rawTemp;
@@ -351,15 +351,15 @@ float IRTherm::calcTemperature(int16_t rawTemp)
351
351
retTemp -= 273.15 ;
352
352
if (_defaultUnit == TEMP_F)
353
353
{
354
- retTemp = retTemp * 9.0 / 5.0 + 32 ;
354
+ retTemp = retTemp * 9.0 / 5.0 + 32.0 ;
355
355
}
356
356
}
357
357
}
358
358
359
359
return retTemp;
360
360
}
361
361
362
- bool IRTherm::I2CReadWord (byte reg, int16_t * dest)
362
+ bool IRTherm::I2CReadWord (uint8_t reg, int16_t * dest)
363
363
{
364
364
_i2cPort->beginTransmission (_deviceAddress);
365
365
_i2cPort->write (reg);
@@ -388,23 +388,23 @@ bool IRTherm::I2CReadWord(byte reg, int16_t * dest)
388
388
}
389
389
}
390
390
391
- bool IRTherm::writeEEPROM (byte reg, int16_t data)
391
+ bool IRTherm::writeEEPROM (uint8_t reg, int16_t data)
392
392
{
393
393
// Clear out EEPROM first:
394
394
if (I2CWriteWord (reg, 0 ) != 0 )
395
395
return 0 ; // If the write failed, return 0
396
- delay (5 ); // Delay tErase
396
+ delay (10 ); // Delay tErase at least 5 ms
397
397
398
398
uint8_t i2cRet = I2CWriteWord (reg, data);
399
- delay (5 ); // Delay tWrite
399
+ delay (10 ); // Delay tWrite at least 5 ms
400
400
401
401
if (i2cRet == 0 )
402
402
return true ;
403
403
else
404
404
return false ;
405
405
}
406
406
407
- uint8_t IRTherm::I2CWriteWord (byte reg, int16_t data)
407
+ uint8_t IRTherm::I2CWriteWord (uint8_t reg, int16_t data)
408
408
{
409
409
uint8_t crc;
410
410
uint8_t lsb = data & 0x00FF ;
0 commit comments