Fixed issue with some sensors due to wrong integer type.

The temperature value was calculated wrongly because the code used int16_t instead of int32_t according to the datasheet. This affects only some sensors.

I guess the problem could also be fixed by a cast in the right place but I don't have a sensor where the original code breaks, so debugging is a bit difficult.

Edit:

I just had another look at it again and it is possible for the raw temperature value (ut) to leave the range of the int16_t so it is necessary to use int32_t there.