Deklarace jednotlivých bitů (PIC18 v C)

Zdravím vás,

mohli by jste mi prosím poradit jak se odkazovat na jednotlivé bity už deklarovaných char registrů.
Mám třeba :
unsigned char Timers = 0;
unsigned char Units = 0;
unsigned char myConfig1 = 0;
unsigned char myConfig2 = 0;

A někdy potřebuji pracovat s celými bajty a někdy pouze s jedním bitem. Např.: myConfig1.Uart1EN = 1;

Jak můžu jednoduše deklarovat tyto jednotlivé bity svými originálními názvy a přitom někdy pracovat i s celým bajtem?

Věděl by někdo?

Díky.

Cau. treba takle ?

tohle sem nasel zde na foru , popripade pres “struct”
urcite to ale najdes v helpu prekladace …

[code]union
{
struct
{
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
} Bit;
unsigned char Byte;
} Timers;

Timers.Byte=0xFF;
Timers.Bit.bit1=0;[/code]

to co píše MiloPS3 je pravda, ale jen u SFR registrů, které jsou mimochodemdefinované stejným způsobem (union,struct) v headerech jednotlivých typů :slight_smile: .

Díky moc lou, tohle je přesně to co jsem hledal. :slight_smile:

Malý vylepšení. Tím, že odstraníte za strukturou slovo “Bit”, nemusíte ho pak psát při práci s bity. Ušetří to pouze psaní nepoctatných slov. Vypadalo by to nějak takhle.

[code]union
{
struct
{
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
};
unsigned char Byte;
} Timers;

Timers.Byte=0xFF;
Timers.bit1=0;[/code]