bitfield v avr-gcc

Dušan Slavětínský dslav3@treeinfo.cz
Pondělí Červen 16 13:17:33 CEST 2008


Zdravím,

Nevim jestli je toto to prave orechove. Pro pristup k bitum v avr-gcc pouzivam nasledujici konstrukci.

/*
Nejdrive si pripravime pudu
*/
typedef struct _bit_struct
{
	unsigned char bit0 : 1;
	unsigned char bit1 : 1;
	unsigned char bit2 : 1;
	unsigned char bit3 : 1;
	unsigned char bit4 : 1;
	unsigned char bit5 : 1;
	unsigned char bit6 : 1;
	unsigned char bit7 : 1;
}bit_field;

#define BIT_FIELD(adr)	(*((volatile bit_field*)(adr)))

/*
Potom nadefinujeme jednotlive pseudopromene 
Napr:
*/
#define bMonochrome			BIT_FIELD(_SFR_ADDR(PORTC)).bit0
#define bTransparent			BIT_FIELD(_SFR_ADDR(PORTC)).bit1

/*
A potom muzeme pouzit nasledujici konstrukci
Napr:
*/
if(bMonochrome)
	bTransparent = 0;
else
	bTransparent = 1;

Dušan Slavětínský

> -----Original Message-----
> From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
> Behalf Of Jan Waclawek
> Sent: Monday, June 16, 2008 12:35 PM
> To: HW-news
> Subject: bitfield v avr-gcc
> 
> Zdravim vsetkych,
> 
> da sa v avr-gcc urobit nejaka forma pointra na polozku bitoveho pola,
> prip. zistit poradie bitu v ramci bitoveho pola?
> 
> Ja viem ze cele bitove polia su do C dorobene dodatocne a cokolvek
> takehoto je priamo proti duchu standardu, ale v gcc je tych rozsireni
> aj tak uz dost, tak som si povedal, ze ci nie je aj taketo nieco...
> 
> Dakujem
> 
> wek
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list