On Apr 17, 2007, at 2:32 PM, Benjamin Madore wrote:


On Tue, April 17, 2007 5:08 pm, Jose A. said:
Hi.
In my Tiny OS application I´m trying to obtain the first eight bits of a variable that take up 2 bytes of space but i don´t know how I can do
it.

Any idea?.

typedef union _byte_word {
  struct byte {
    uint8_t byteA, byteB;
  };
  uint16_t word;
} byteword;

byteword x;
x.word = (byteword) variable;
...
uint8_t whatIwant = x.byte.byteA;

Now, I'm sure I didn't do that right. I'm also sure I don't know the endian
format of the transmitter. byteB may be first but last. (Don't try to
understand that. Endian problems are difficult.)

uint16_t val;
uint8_t a;

a = val >> 8; // For most significant 8 bits of val
a = ((uint8_t*)&val)[0]; // For first byte of val

Phil



_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to