Evtl. geht sowas (ähnliches):
1 | struct _bits{
|
2 | unsigned char T1:1;
|
3 | unsigned char T4:1;
|
4 | unsigned char T2:1;
|
5 | unsigned char T5:1;
|
6 |
|
7 | unsigned char K4:1;
|
8 | unsigned char K3:1;
|
9 | unsigned char K2:1;
|
10 | unsigned char K1:1;
|
11 | };
|
12 | /* Du musst selber ausprobieren, welches struct korrekt ist ;)
|
13 | struct _bits{
|
14 | unsigned char K1:1;
|
15 | unsigned char K2:1;
|
16 | unsigned char K3:1;
|
17 | unsigned char K4:1;
|
18 |
|
19 | unsigned char T5:1;
|
20 | unsigned char T2:1;
|
21 | unsigned char T4:1;
|
22 | unsigned char T1:1;
|
23 | };
|
24 | */
|
25 |
|
26 | typedef union {
|
27 | struct _bits bits;
|
28 | unsigned char raw_byte;
|
29 | } Byte;
|
30 |
|
31 | //in main....
|
32 | Byte theByte;
|
33 | theByte.raw_byte = IR_buffer[0];
|
Probleme: ich weiß nicht, ob die Reihenfolge der Felder im Bitfeld
feststeht (oder Architektur-/Compilerabhängig ist).
Und ich weiß nicht, ob du nicht vielleicht tatsächlich 8 Bytes pro
"Byte" brauchst...
hth. Jörg
ps.: Vielleicht könntest du verraten, was du für ein Signal einliest
(UART, I2C, SPI, PWM, ....)