aboutsummaryrefslogtreecommitdiffstats
path: root/src/lm75.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lm75.c')
-rw-r--r--src/lm75.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/lm75.c b/src/lm75.c
index fd6f374..784defd 100644
--- a/src/lm75.c
+++ b/src/lm75.c
@@ -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];
}