Portpins einzeln in Schleife abfragen auf PIC18

OP #4785900
Lesenswert?
• ▲
▼
Hallo,

ich würde gerne jeden einzelnen Pin eines Ports abfragen und 
entsprechend des Zustands eine Aktion ausführen. Das ganze soll auf 
einem Pic18F45k22 laufen, ist ja aber eher eine Grundsatzfrage.
Nun könnte man das Problem ja für jeden Pin mit einer einzelnen 
If-Abfrage erledigen:
1
If(PORTBbits.PORTB0 == 1){
2
  mache etwas;}
3
else
4
  mache etwas anderes;
5
}
6

7
...
8

9
If(PORTBbits.PORTB7 == 1){
10
  mache etwas;}
11
else
12
  mache etwas anderes;
13
}


Ich würde das Ganze nun gerne in einer Schleife lösen, in etwa so:
1
for (i=0x00; i<8; i++){
2
  If(PORTBbits.PORTBi == 1){
3
    mache etwas;
4
  }
5
  else
6
    mache etwas anderes;
7
  }
8
}

Gibt es dazu eine simple Möglichkeit?

Nur um der Frage die mit Sicherheit kommen wird, vorzugreifen:
Für jeden Portpin soll die gleiche Aktion durchgeführt werden in der 
sich nur "i" unterscheidet. In dem konkreten Fall ein String versendet 
werden, der immer gleich bleibt, bis auf eine Stelle, welche aus "i" als 
PIN Index besteht.


Danke und Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren