Forum: Mikrocontroller und Digitale Elektronik einzelner Pin einlesen


von erol (Gast)


Lesenswert?

Hallo Leute

Ich habe eine frage, ich versuche mit einem xc866 von infineon ein 
einzelnes bit an einem paralellport abzufragen. Prigrammiersprache c

Mit P3_DATA Wird der ganze Port 3 eingelesen also alle 8 Bit.

Wenn ich jetzt aber an bit 3 also P3_3 auf ein signal (high,1) warte, 
will ich nur diesen wert abfragen.

Habe es mit printf ("%i".P3_3); probiert, compiler frisst es aber 
einlesen tut er nix.

ich möchte so eine Variable mit dem zustand 0 oder 1 füttern und 
weiterverarbeiten, je nach signal an P3_3.

also so:

P3_3 = Variable;

if(variable== 1);
etc....

Grüsse erol

von Joe (Gast)


Lesenswert?

Hast doch rausgefunden das der PIN P3_3 ist.

if (P3_3) {
  blabla
  }else{
  blup
  }

von Oliver (Gast)


Lesenswert?

Was der C-Compiler bzw. die libc für den Prozessor jetzt für Funktionen 
zum Zugriff auf einzelne Bits bietet, weiss ich nicht, aber auf jeden 
Fall funktioniert das hier:

if (P3_DATA & (1)) P3_0 = 1 else P3_0=0;

if (P3_DATA & (1<<2)) P3_3 = 1 else P3_3=0;

Oliver

von Joe (Gast)


Lesenswert?

xc866 kanns auch so wie beschrieben.

von erol (Gast)


Lesenswert?

na klar doch!!!

manchmal sieht man den Wald vor lauter Bäumen nicht!

danke euch!!

gruss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.