das mit dem Arrays initialisieren ist gut . Dann kann ich mir das nächstes mal Sparen.

Das
p[x]=PINA&(1<<(PINA+x));
soll eigentlich nacheinander jeden einzelnen Pin von PortA abfragen und den dann in ein weiteres Array speichern. Also beim ersten schleifendurchlauf soll quasi
p[0]=PINA&(1<<(PINA0)); sein, das also der Wert von PINA0 ins Array gespeichert wird.

Ist da ein Denkfehler dabei?

Gruß