Eingänge in verschiedene Ports mit for-schleife abfragen

Gast #4634500
Hallo, ich habe mehrere Eingänge, die ich gerne in einer For-Schleife 
abfragen möchte. Leider war es nicht möglich, die alle auf einem Port zu 
legen.
Ist es trotzdem irgendwie möglich die Eingänge in einer For-Schleife 
abzufragen?
Die Eingänge sind bei einem Atmega328p bei
PC0-PC3 sowie PD4-PD6
Bis jetzt habe ich einfach alles untereinander geschrieben, was auch 
funktioniert. Da aber immer das selbe passiert (nur mit anderen 
PArametern, die ich mir dann aus einer Liste holen kann) wollte ich das 
kürzen.

Frank
Frank schrieb:
> Ist es trotzdem irgendwie möglich die Eingänge in einer For-Schleife
> abzufragen?
> Die Eingänge sind bei einem Atmega328p bei
> PC0-PC3 sowie PD4-PD6


in   r16,PINC
andi r16,$0F
in   r17,PIND
andi r17,$70
or   r16,r17  ; now r16 contains bits 0 - 6


war eigentlich eine geniale Belegung der Ports ... nicht mal schieben 
war notwendig!
Gast
Christopher B. schrieb:
> Brauch ich nicht, aber du solltest den Code nochmal genau lesen.
> Besonderes Augenmerk auf den Schleifenkopf.

Oo Style Diskussion incoming :)

Ich persönlich würde ja nichts in den Schleifenkopf stecken, was nicht 
unbedingt nötig ist. Das verringert die Lesbarkeit enorm( wie man 
sieht).
nicht"Gast" schrieb:
> Ich persönlich würde ja nichts in den Schleifenkopf stecken, was nicht
> unbedingt nötig ist. Das verringert die Lesbarkeit enorm( wie man
> sieht).

Unbedingt nötig ist im Schleifenkopf gar nichts. Man könnte die Schleife 
ja auch so schreiben:
1
uint8_t i = 0;
2
for (;;)
3
{
4
    if (i < 8)
5
    {
6
        // Bit Nummer i auswerten
7
        bool bit = val & 1;
8

9
        i++;
10
        val >>= 1;
11
    }
12
    else
13
    {
14
        break;
15
    }
16
}

Ich hab es im Prinzip so geschrieben, weil val für mich quasi die 
Variable ist, über die iteriert wird. Nur hat mir ein Abbruchkriterium 
gefehlt, deshalb habe ich i noch dazu geschrieben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.