From c4dfed49d5cc270ef6e26a0a1d45ad237892ccee Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Sat, 23 May 2015 09:55:02 +0300 Subject: [PATCH] si7005 next iteration (still doesn't work) --- si7005/i2c.c | 95 ++++++++-------- si7005/i2c.h | 2 +- si7005/main.c | 55 ++++++++++ si7005/si7005.c | 14 ++- si7005/uart.ihx | 285 ++++++++++++++++++++++++++---------------------- 5 files changed, 272 insertions(+), 179 deletions(-) diff --git a/si7005/i2c.c b/si7005/i2c.c index 5bcc345..287a7d5 100644 --- a/si7005/i2c.c +++ b/si7005/i2c.c @@ -140,9 +140,18 @@ static U8 addr7r = 0, addr7w = 0; +extern volatile unsigned long Global_time; + static U16 _c; -#define I2C_WAIT(evt) do{for(_c = 0; _c < 16000; _c++){ \ - if(evt) break;} if(_c == 16000) return ret;}while(0) +static unsigned long wtm; +#define I2C_WAIT(evt, tmo) do{wtm = Global_time; \ + while(Global_time-wtm