tests/drivers_ds18: display negative numbers
When `ds18_read` returns -2506, DS18 test print `Temperature [ºC]: -25.-6` whereas it should print `Temperature [ºC]: -25.06. This commit fixes this issue.
This commit is contained in:
parent
1783b3da55
commit
c9fa1d7503
@ -48,9 +48,16 @@ int main(void)
|
|||||||
|
|
||||||
/* Get temperature in centidegrees celsius */
|
/* Get temperature in centidegrees celsius */
|
||||||
if (ds18_get_temperature(&dev, &temperature) == DS18_OK) {
|
if (ds18_get_temperature(&dev, &temperature) == DS18_OK) {
|
||||||
printf("Temperature [ºC]: %d.%d"
|
bool negative = (temperature < 0);
|
||||||
|
if (negative) {
|
||||||
|
temperature = -temperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Temperature [ºC]: %c%d.%02d"
|
||||||
"\n+-------------------------------------+\n",
|
"\n+-------------------------------------+\n",
|
||||||
(temperature / 100), (int)(temperature % 100));
|
negative ? '-': ' ',
|
||||||
|
temperature / 100,
|
||||||
|
temperature % 100);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
puts("[Error] Could not read temperature");
|
puts("[Error] Could not read temperature");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user