Problem: Since `i2c_read_reg` returns (signed) `int` values, the result can be negative. However, the variable used to save the result is unsigned. Fix: Add and use a signed variable for return value storing.
Problem: Since `i2c_read_reg` returns (signed) `int` values, the result can be negative. However, the variable used to save the result is unsigned. Fix: Add and use a signed variable for return value storing.