/** Get current internal temperature as a signed 16-bit integer.
* The resolution is typically 1/2^9 degrees Celcius per LSB, at an
* offset of 23 degrees Celcius. For example:
*
* <pre>
* Value | Temperature
* ---------+----------------
* 0x7FFF | 87 - 1/2^9 degrees C
* ... | ...
* 0x0000 | 23 degrees C
* ... | ...
* 0x8001 | -41 + 1/2^9 degrees C
* 0x8000 | Invalid
*
* @return Temperature reading in 16-bit 2's complement format
* @see BMI160_RA_TEMP_L
*/
int16_t BMI160Class::getTemperature() {
uint8_t buffer[2];
buffer[0] = BMI160_RA_TEMP_L;
serial_buffer_transfer(buffer, 1, 2);
return (((int16_t)buffer[1]) << 8) | buffer[0];
}
int CurieIMUClass::readTemperature()
{
return getTemperature();
}
Celsius=(raw/32767.0)+23
欢迎光临 狗趴(GodPub),开源硬件学习与实践 (http://forum.godpub.com/) | Powered by Discuz! X3.2 |