HomeTOOLSEXAMPLESEXPLORE EMBEDDEDE CSERVICESECU SAMPLESRegistration
Embedded C programming Tutorial , Keil C ide , microsoftware.gr
Keil CRC and CAN BUS codes.
1. Shift led left
2.It's time for DAVE! <7/6/13>
3.Capture/Compare unit 6
4.ASC0-GPT1-MACROS
5.ASC0-FIFO-PEC
6.Analog converter
7.Memory manipulation routines
8. Recursion
9.Understanding interrupt priorities using CAPCOM2 module
10. POINTERS TO FUNCTION <4/7/13>,<4/28/13>
11.Memory models, memory types
12. The heap , part 1
13. The heap , part 2
14. The heap , part 3
15. Structure example
16. Nested structures, Array of structures.
17. Passing array of structures to function using pointers.<1/5/13>
18. Self Referential Structures
19. BITFIELDS
20. Linked list example
21. Circular linked list
22. Union example
23. Enumeration example
24. Watchdog timer example
25. Void pointer example <7/4/13>
26. The sieve of Eratosthenes
27. The stack
28. Union and bitfields as flags example. <6/23/13>
29. Look up table example. <8/11/13>
30. Seven segment display multiplexing -four digits with dot- example
31. LCD character display example - JHD162A
32. Hash table introduction example <8/27/14>
33. Array of Linked Lists example
34. Array of Linked lists-more functions included.
35. Hash table construction,searching and printing.
36. Fininte state machines- a first approach.
37. Finite state machines- two events example.
38. SPI port and an AT25128 serial eeprom hardware.
39. CRC CHECK
40. Definite Integral Calculator for Scientists, Engineers...
41 .Hamming distance of a CRC polynomial
42. Linux play starting.
43. Galois GF(2^4) Finite Field
44. Construct your own time triggered real time operating system.
45. CANBUS C CODE EXAMPLE.
19. BITFIELDS

This article includes bitfield structure
examples.

Please, read it :  BITFIELDS

 
About structure bit1

struct bitfield1

{

unsigned int a:6;

unsigned int b:6;

unsigned int c:6;

char d:8;

} bit1;




 bit1.a=5;

 bit1.b=14;                              

  bit1.c=6;

  bit1.d=9;

 


We have: size of   unsigned int a:6+ size of unsigned int b:6 <16 <size of unsigned int a:6+ size of unsigned int b:6 +size of unsigned int c:6
So a and b will be packed together in the space of an integer  (space of 16 bits long),c will be packed alone at a space of 16 bits and d will be packed alone at a space of 16 bits. bit1 is 6 bytes long and it will be :
0000  001110  000101  =  00000011  10000101 =      
0x03  0x85                             
                                                                  (  14=0x0E=b1110)
The low byte is
saved first.





     The  C code                                   The result



About structure bit3



struct bitfield3

{

 unsigned int a:5;

unsigned int b:5;

unsigned int c:5;

char d:5;

 

} bit3; 



 bit3.a=5;

bit3.b=14;

bit3.c=6;

bit3.d=9;


We have: size of unsigned int a:5+ size of unsigned int b:5 +size of unsigned int c:5 <16

So, a  b and c are packed together in a space of 16 bits , bit3 is 4 bytes long and it will be:

 0  00110  01110  00101 = 00011001  11000101 = 0x19  0xc5

bit2 structure is obvius.

Bitfields are useful when memory economy is needed.




 

 

 

 


 

Home|TOOLS|EXAMPLES|EXPLORE EMBEDDEDE C|SERVICES|ECU SAMPLES|Registration