AVR GCC - Zustand eines Pins in Variable schreiben

Gast #2471693
Lesenswert?
• ▲
▼
Hallo alle µC-Bastler,

ich stehe gerade vor einem kleinen Problem.
Ich habe immer zum Taster abfragen if (bit_is_clear(var, bit)) {} else 
{}. genutzt.

Doch nun will ich den Zustand eines Portpins auslesen und dann in eine 
Variable schreiben.
In Bascom geht dies ja einfach mit var = PinA.2.
Doch wie geht dies in C? Gibts da auch eine Funktion oder kann man sich 
da was selber basteln?

Wäre nett, wenn mir jemand helfen kann.
Gast #2471739
Lesenswert?
• ▲
▼
Das geht so:

1. Möglichkeit
x = PORTA & (1 << BITDASGETESTETWERDENSOLL)

Setzt in x (1 << BITDASGETESTETWERDENSOLL) oder 0 - je nachdem ob das 
bit in PORTA an war oder nicht. Das reicht für if abfragen, da die nur 
auf 0 oder ungleich 0 testen.


2. Möglichkeit:
x = (PORTA & (1 << BIT)) == (1 << BIT)
liefert 1 wenn das bit gesetzt ist oder 0 wenn nicht.
Das ist aber eigentlich genau das selbe wir bei Deinem alten Code.

Wenn Du Taster abfragst, denke daran, daß diese prellen.
Dazu gibt es hier im Forum viel Beispielcode wie man das unterdrückt,
ist nicht so einfach wie man zunächst denkt.

Frohes Schaffen und ein gesegnetes Weihnachtsfest.

Hans
Gast #2471746
Lesenswert?
• ▲
▼
Danke. Möchte jedoch keine Taster abfragen, sondern beschäftige mich 
gerade mit dem DS18S20. Jedoch funktioniert bei mir der Reset nicht ganz 
und schätze, dass das an meiner Pin abfrage scheitert.

Ich bekomme bei meinem Code immer "kein Device vorhanden" per RS232.
Liegt mein Fehler im Code? Code ist angehängt.
Angehängte Dateien:

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.