Hi,
ich hab mir eine union definiert, und möchte jetzt dessen Werte
auslesen.
1 | typedef struct
|
2 | {
|
3 | unsigned Pin2 : 1;
|
4 | unsigned Pin4 : 1;
|
5 | unsigned Pin5 : 1;
|
6 | unsigned Pin6 : 1;
|
7 | unsigned Pin7 : 1;
|
8 | unsigned Pin8 : 1;
|
9 | unsigned InEnable : 1;
|
10 | unsigned dummy1 : 1;
|
11 | } tNPZugriff;
|
12 |
|
13 | union
|
14 | {
|
15 | char Data;
|
16 | tNPZugriff Val;
|
17 | } NPStruct;
|
Auslesen wollte ich das so:
1 | if ((NPStruct.Data & 0x01 ) == 1) //Pin2
|
2 | if ((NPStruct.Data & 0x02 ) == 1) //Pin4
|
3 | if ((NPStruct.Data & 0x04 ) == 1) //Pin5
|
ich dachte jede meine Variablen hätte eine bitposition
--> Pin2 = 2^0
--> Pin4 = 2^1
--> Pin5 = 2^2 usw...
ist aber wohl nicht so??
Klappt nähmlich nicht, wies ich oben machen wollte??
Wie kann ich in so einem Fall sie Variablen richtig auslesen??
Danke
Gruß