diff options
Diffstat (limited to 'src/lm75.c')
-rw-r--r-- | src/lm75.c | 29 |
1 files changed, 18 insertions, 11 deletions
@@ -7,11 +7,15 @@ #include "lm75.h" +#include "deftypes.h" -extern int file; + + +extern uint16 devicef; extern void bus_err(int ern); extern void print_help(void); -unsigned char buf[5]; +uchar buf[32]; + void lm75_print_all(void) @@ -25,16 +29,18 @@ void lm75_print_all(void) } +uchar *dev_xchg_data( uchar *buf, uint16 blen){ //# Exchange data with the device -void lm75_get_data(void){ - - if(write(file, buf, 1) != 1){ + if(write(devicef, buf, 1) != 1){ //# write bus_err(errno); } - if(read(file, buf, 2) != 2) { + if(read(devicef, buf, 2) != 2) { //# read bus_err(errno); - } + } + + // *buf = 0x0022; + return buf; } void lm75_conf_set(const char *opts){ @@ -46,10 +52,11 @@ float lm75_read_temp(float offset) { signed int rawtemp = 0; float temp; + // char *buff; buf[0] = 0x00; - lm75_get_data(); + dev_xchg_data(buf,32); rawtemp = (buf[0]*256 + buf[1]) >> 5; //(buf[0] << 8), and (>> 5), 11bit device is also supported @@ -70,7 +77,7 @@ float lm75_read_tos(void) buf[0] = 0x02; - lm75_get_data(); + dev_xchg_data(NULL,32); rawtemp = buf[0]*256 + buf[1]; rawtemp = (rawtemp) >> 7; //9bit data @@ -91,7 +98,7 @@ float lm75_read_thys(void) buf[0] = 0x03; - lm75_get_data(); + dev_xchg_data(NULL,32); rawtemp = buf[0]*256 + buf[1]; rawtemp = (rawtemp) >> 7; //9bit data @@ -110,7 +117,7 @@ char lm75_read_conf(void) buf[0] = 0x01; - lm75_get_data(); + dev_xchg_data(NULL,32); return buf[0]; } |