From: Walter Fetter Lages Date: Fri, 1 Feb 2019 07:27:06 +0000 (-0200) Subject: Add delay between transmitted bytes to avoid overrun in BNO055. X-Git-Tag: f1~3 X-Git-Url: http://git.ece.ufrgs.br/?a=commitdiff_plain;h=d524892a3ddcd1f08c5e5e375e9dd637d036ba59;p=bno055.git Add delay between transmitted bytes to avoid overrun in BNO055. --- diff --git a/lib/bno055_tty.c b/lib/bno055_tty.c index 8e08f71..f122b61 100644 --- a/lib/bno055_tty.c +++ b/lib/bno055_tty.c @@ -108,7 +108,10 @@ s8 BNO055_tty_write(u8 dev_addr,u8 reg_addr,u8 *reg_data,u8 cnt) for (i=0;i < cnt;i++) array[i+4]=*(reg_data+i); for(n=0;n < cnt+4;n+=c) - if((c=write(dev_addr,array+n,cnt+4-n))==-1) return BNO055_ERROR; + { + if((c=write(dev_addr,array+n,1))==-1) return BNO055_ERROR; + usleep(100); + } for(n=0;n < 2; n+=c) if((c=read(dev_addr,array+n,2-n)) <= 0) return BNO055_ERROR; @@ -132,7 +135,10 @@ s8 BNO055_tty_read(u8 dev_addr,u8 reg_addr,u8 *reg_data,u8 cnt) array[3]=cnt; for(n=0;n < 4;n+=c) - if((c=write(dev_addr,array+n,4-n))==-1) return BNO055_ERROR; + { + if((c=write(dev_addr,array+n,1))==-1) return BNO055_ERROR; + usleep(100); + } for(n=0;n < 2; n+=c) if((c=read(dev_addr,array+n,2-n)) <= 0) return BNO055_ERROR;