X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Flm75.c;h=db8f8a9420c04755668c35bb07eb988cb604e556;hb=55cb504cb865f019f6d1c82f9d51713a664ad9c4;hp=845fa3a49c3941545cb87c485406e830104b7ff7;hpb=2e82814c186e99b012b71ded1803889c9a1bca1f;p=bertos.git diff --git a/bertos/drv/lm75.c b/bertos/drv/lm75.c index 845fa3a4..db8f8a94 100644 --- a/bertos/drv/lm75.c +++ b/bertos/drv/lm75.c @@ -43,6 +43,7 @@ #include "cfg/cfg_lm75.h" #include +#include // Define logging setting (for cfg/log.h module). #define LOG_LEVEL LM75_LOG_LEVEL @@ -51,10 +52,11 @@ #include #include +#include // Macro and data type to manage celsius degree #define SELECT_ADDRESS(addr) LM75_ADDRESS_BYTE | (addr << 1) -deci_celsius_t lm75_read(addr_t sens_addr) +deg_t lm75_read(uint8_t sens_addr) { uint8_t data[2]; int16_t degree; @@ -63,10 +65,10 @@ deci_celsius_t lm75_read(addr_t sens_addr) i2c_start_w(SELECT_ADDRESS(sens_addr)); i2c_put(LM75_PAD_BYTE); i2c_start_r(SELECT_ADDRESS(sens_addr)); - i2c_recv(&data, sizeof(data)); + i2c_recv(data, sizeof(data)); - degree = (uint16_t)data[0]; - deci_degree = (uint16_t)(((data[1] >> 7) & 1 ) * 5); + degree = (int16_t)data[0]; + deci_degree = (int16_t)(((data[1] >> 7) & 1 ) * 5); LOG_INFO("[%d.%d C]\n", degree, deci_degree); @@ -75,9 +77,8 @@ deci_celsius_t lm75_read(addr_t sens_addr) void lm75_init(void) { - i2c_init(); - LOG_INFO("Init I2C module.\n"); - + // Check dependence + MOD_CHECK(i2c); LM75_HW_INIT(); }