On 29.07.2009, at 18:31, Janos Sallai wrote:
Andres,
I2CPacket.read and I2CPacket.write are split phase operations. You
have to wait for the corresponding readDone or writeDone events before
issuing the next read or write, otherwise the subsequent operations
may fail.
Janos
Hi,
I have read that I2CPacket.write(adr, len, data) returns always success.
There is patch for that:
http://mail.millennium.berkeley.edu/pipermail/tinyos-devel/2009-July/003977.html
I tried it with copy-paste method (don't know how to apply it
correctly).
And I'm still getting SUCCESS when I'm tryng to write to non existing
I2C device - I should get EINVAL with that patch - am I right?.
---------------------------------------------------------
buffer[0] = 0x00;
buffer[1] = 0x00;
buffer[2] = 0xF;
buffer[3] = 0x00;
if (call I2CPacket.write(I2C_START, 0x41, 1, buffer) == SUCCESS) {
call Leds.led2On();
}
---------------------------------------------------------
It returns always success. I don't have device with address 0x41
connected.
What about external pulldown, why is it changed
from
if (hasExternalPulldown)
to
if (!hasExternalPulldown)
How is addressing managed? If I have a device with 8 bit address 0xA2
should I use that address in I2CPacket.write or should I use 7 bit
address 0xA2 >> 1?
And last question: if I have device with I2C address 0xA2 and I want
to change register 0x02 value in that device to 0x0F - how should I do
that, is following code right?
buffer[0] = 0x02; // reg addr
buffer[1] = 0x0F; // value
if (call I2CPacket.write(I2C_START, 0xA2, 2, buffer) == SUCCESS) {
}
Andres Vahter
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help