Noch mal zum Verständnis:
PORTA = PORTA | (1<<PA0)

'PORTA = ' -> weise PORTA den folgenden Wert zu:
'PORTA' -> Nimm den aktuellen Wert von PORTA
'|' -> und verknüpfe diesen bitweise oder mit
'(1<<PA0') -> 00000001

Und noch zu den Ports generell:
Wenn man einen Port als Ausgang schaltet, also z.B.

DDRA = 0xff

(das ist übrigens quasi ein DDRA=(1<<PA0)|(1<<PA1)|(1<<PA2)|(1<<PA3)|(1<<PA4)| (1<<PA5)|(1<<PA6)|(1<<PA7), setzt also alle 8 Bit im Richtungsregister)

dann schaltet man über die Bits in PORTA die Ausgänge High oder Low.

definiert man den Port per DDRA=0x00 als Eingang, kann man mit PORTA Pullup-Widerstände für die einzelnen Eingänge aktivieren,d.H. ist nichts angeschlossen, zieht der Pullup-Widerstand den Pin auf High, um das zu ändern, muß der Pin auf GND gezogen werden.
Will man ´den Zustand der Eingangspins abfragen, benutzt man PINA, in PORTA steht nur, für welchen Pin die Pullups aktiviert sind.

Ich hoffe, das hilft Dir noch weiter.