Hallo,

ich hab die struct jetzt in eine union gepackt, wie du gesagt hast:

Code:
typedef union
{
uint64_t dcfsig;
	struct {
		uint32_t stuff	:20;
		unsigned int startbit	:1;

		unsigned int minutes	:7;	//minute
		unsigned int Pm		:1;	//parity	of minute

		unsigned int hours	:6;	//hour
		unsigned int Ph		:1;	//parity	of hour

		unsigned int days	:6;	//day
		unsigned int weekdays	:3;
		unsigned int months	:5;	//month
		unsigned int years	:8;	//year	
		unsigned int	Pd	:1;	//parity of date
	};

}dcf_t;

//...
volatile dcf_t bits;
//...
In bits.dcfsig lese ich dann die Bits ein, die ja dann eigentlich auf die struct gelegt werden:

Code:
if(ms>=750 && ms<997)	//1
	{
		
		bits.dcfsig|=(1<<bitcounter);

		bitcounter+=1;
		send(" 1 ");
		PORTD|=(1<<PD6);
		return;
	}

	if(ms>=997 && ms<1300)	//0
	{
		
			bits.dcfsig&=~(1<<bitcounter);

		bitcounter+=1;
		send(" 0 ");
		PORTD&=~(1<<PD6);
		return;
	}

	if(ms>=1300)	//0
	{
		
			bits.dcfsig&=~(1<<bitcounter);

		//dcf=(struct DCF*)(uint64_t)&bits;
		decode(bitcounter);
		bitcounter=0;
		send(" 0 START: ");
		startDCF();
		return;
	}
Wenn ich mir dann aber z.B. dcf.minutes ausgeben lassen möchte, bekomme ich den Wert 127, was ja einem 7-Bitfeld entspricht, dessen Bits alle auf 1 sind, aber müsste da jetzt nicht eine Zahl rauskommen, deren Binärcoe, dem der empfangenen Minutenbist entspricht???

Gruß
cesupa