This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Struct in union

Hi
I have some problems with struct inside a union
This is my code.

union{
	unsigned char id_byte[2];

	struct {
			unsigned char DLC:4;
			unsigned char RTR:1;
			unsigned int identifier:11;
			}del_element;
}can_descriptor;

when I write an_descriptor.del_element.identifier=0x0A;

nothing comes in id_byte array why?
The values I put in DLC and RTR are placed correct.

If i change the code to
union{
	unsigned char id_byte[2];

	struct {
			unsigned int identifier:11;
			unsigned char DLC:4;
			unsigned char RTR:1;
			}del_element;
}can_descriptor;
And writes 0x0A to identifier:
id_byte[0]=0
id_byte[1]=0x0A

but i shoud be
id_byte[0]=0x80
id_byte[1]=0x01

why?
This program is part of an CAN program for SJA1000, this funktion i made make it easy to write the CAN iddentifiers DLC and RTR bit in the controller.....if it worked.

Best Regrads
Soren