unverständliche Zeile in C-Code

Gast #1247737
ich wage mal einen schuss ins blaue ^^

wenn an PORTC  der pin PB0   1 ist wird  1  zurückgegeben wenn PB0  0 
ist wird  0 zurückgegeben


das xxx  ?  1  : 0  ist glaube  wie eine

IF (xxxx)
   1 ;
else
  0;
#1248230
c_anfänger schrieb:
> erstmal danke, ich bekomme also eine 1, wenn ich an den vierten PIN von
> PORTc 5v anlege?
1
return(PINC & _BV(0) ? 1 : 0);

Wie kommst du da auf den vierten Pin? _BV(x) ist nichts anderes als
1
1 << x
damit ergibt sich 1 << 0, bzw. ausgerechnet halt 1. Wenn du nun PINC 
damit maskierst, bleibt eine Eins übrig, wenn Bit 0 eine Eins liefert.

Noch was: Lass die Klammern um den ganzen Return-Ausdruck weg, return 
ist keine Funktion.
Gast #1248239
>ich wage mal einen schuss ins blaue ^^

Wohl eher in ein sehr dunkelblaues Etwas mit Schornstein dran.

>wenn an PORTC  der pin PB0   1 ist wird  1  zurückgegeben wenn PB0  0
>ist wird  0 zurückgegeben

Wäre das das Ding reif zum patentieren.

Wenn PB0 == Pin0 an PortB 1 wird...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.