ZHCSVB3 December 2024 TMP113
PRODUCTION DATA
TMP113 溫度寄存器使用 12 位格式。12 位與 16 位字的左側或最高有效側對齊。四個未使用的位位于右側,即最低有效側。因此,需要進行移位來丟棄額外的位。采用二進制補碼來描述負溫度。在數據轉換為正確的有符號數據類型時,C 代碼可以輕松轉換二進制補碼數據。Q 表示法描述了表示分數結果的位數。4 位分數數據(稱為 Q4)可提供 0.0625°C 分辨率。
| 參數 | 值 |
|---|---|
| 位 | 12 |
| Q | 4 |
| 分辨率 | 0.0625 |
| 范圍 (+) | 127.9375 |
| 范圍 (–) | -128 |
| 25?C | 0x0190 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 符號 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 | 0.0625 | - | - | - | - |
| -128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 | - | - | - | - |
-27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 | - | - | - | - |
/* 12-bit format will have 4 bits discarded by right shift
q4 is 0.062500 resolution
the following bytes represent 24.5C */
uint8_t byte1 = 0x18;
uint8_t byte2 = 0x80;
float f = (((int8_t) byte1 << 8 | byte2) >> 4) * 0.0625f;
int mC = (((int8_t) byte1 << 8 | byte2) >> 4) * 1000 >> 4;
int C = (int8_t) byte1;