einzelner Pin einlesen

Gast #514777
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
Gast #514790
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.