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ß