|
From: | Stumpf Michael |
Subject: | AW: [avr-gcc-list] Bit Variables |
Date: | Wed, 12 Jun 2002 10:25:15 +0200 |
But be aware that using bitfields will yield much larger code for single variable access.
Have a look at http://www.avrfreaks.net/phorum/read.php?f=2&i=677&t=676#677
If you need some bit variables and have some spare i/o registers you don't use you
may abuse them as yours with very efficient access.
Which registers may be used depends on your application, others arent't usable at all.
regards
Michael
-----Ursprüngliche Nachricht-----
Von: Heinrich Vermeulen [mailto:address@hidden]
Gesendet: Mittwoch, 12. Juni 2002 09:06
An: avr-gcc-list
Betreff: RE: [avr-gcc-list] Bit Variables
You can use bitfields in a structure. This will also keep all your bits
together, especially when using it as global vars.
E.g.
typedef struct {
unsigned bit_x : 1; //bit is called bit_x reserving 1 bit location
unsigned bit_y : 1; //bit is called bit_x reserving 1 bit location
unsigned bit_z : 1; //bit is called bit_x reserving 1 bit location
unsigned bit_a : 1; //bit is called bit_x reserving 1 bit location
unsigned bit_b : 2; //bit is called bit_x reserving 2 bit locations
unsigned bit_c : 2; //bit is called bit_x reserving 2 bit locations
unsigned bit_d : 4; //bit is called bit_x reserving 4 bit locations
unsigned bit_e : 4; //bit is called bit_x reserving 4 bit locations
} BitField;
/*
2 bytes will be reserved for a var of this type (count the bits above)
The number of bits reserved will be:
bytes reserved = nbits/8 + (nbits%8 > 0)
IOW 1 byte for every 8 bits or part thereof
*/
main()
{
BitField myBitField;
myBitField.bit_x = 1; //can be assigned a value of 0 to 1
myBitField.bit_b = 3; //can be assigned a value of 0 to 3
myBitField.bit_e = 12; //can be assigned a value of 0 to 15
}
Heinrich Vermeulen
> -----Original Message-----
> From: Michael Bellefeuille [mailto:address@hidden]
> Sent: 11 June 2002 07:42
> To: avr-gcc-list
> Subject: [avr-gcc-list] Bit Variables
>
>
> Hi,
> What is the best way of handing bit variables? I found the AVR
> Freaks design note #008, but it is about handling i/o with bitfields.
>
> Michael
>
>
> avr-gcc-list at http://avr1.org
>
avr-gcc-list at http://avr1.org
[Prev in Thread] | Current Thread | [Next in Thread] |