union werte auslesen

Gast #740813
Lesenswert?
• ▲
▼
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ß
Gast #740853
Lesenswert?
• ▲
▼
Hi,  µC-nob,

Das Geschreibene erscheint mir nicht falsch.

Zur hinreichenden Anamnese fehlt mir noch:
1. wie ist "unsigned" definiert? Es müßte "unsigned char" heißen.
2. mit welchen Befehlen steuerst Du den Port an,
3. mit welchen Befehlen liest Du ihn aus.


ciao
Wolfgang Horn

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren