MPU9250
Fork of MPU6050 by
Diff: I2Cdev.cpp
- Revision:
- 10:11cc1b413f49
- Parent:
- 9:d879deb55ae1
- Child:
- 13:a74f2d622b54
--- a/I2Cdev.cpp Sat Nov 09 08:51:07 2013 +0000 +++ b/I2Cdev.cpp Mon Dec 23 08:34:58 2013 +0000 @@ -262,31 +262,25 @@ bool I2Cdev::writeBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *data) { - //i2c.start(); - //i2c.write(devAddr<<1); - //i2c.write(regAddr); - //for(int i = 0; i < length; i++) { - // i2c.write(data[i]); - //} - //i2c.stop(); char* mem = NULL; - mem = allocbuffer();//(char*)malloc(length+1); + mem = allocbuffer(); *mem = regAddr; memcpy(mem+1, data, length); - i2c.write(devAddr, mem, length+1, &writefinhdl, mem); + i2c.write(devAddr, mem, length+1, &writefinhdl, this); return true; } char *I2Cdev::allocbuffer(){ char *buff = (char *)pool.alloc(); + while (buff==NULL) buff = (char *)pool.alloc(); queue.put(buff); return buff; } void I2Cdev::freebuffer(){ osEvent evt = queue.get(0); - pool.free((char(*)[20])evt.value.p); + pool.free((char(*)[14])evt.value.p); } bool I2Cdev::writeWords(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t *data)