Wenn ein Pin als Eingang geschaltet ist ( DDRx = 0 ), dann fragst du mit PORTx den Zustand der Pull-up Widerstände ab, mit PINx hingegen die Pegel die an den Eingängen anliegen.
Wenn der Pin aus Ausgang geschaltet ist, dann fragst du mit PORTx die Werte ab die du eingestellt hast, PINx hat dann den gleichen Wert wie PORTx ( bei Änderungen einen Takt später ).

Wie das Timing bei Zugriff auf die Ports ganz genau aussieht weiß ich nicht. Das Datenblatt solte aber da Aufschluss geben.

MfG Kjion