Also das hier:
Code:
PINA|= (1<<PA0);
dürfte nix bringen. Soweit ich weiss, kann man von PINx nur lesen.
Zum Schreiben gibts PORTx und DDRx.
Also zum "High" setzen gibts 2 Möglichkeiten:

Als Input, mit aktivem Pull-Up:
Code:
DDRA &= ~(1 << PA0);
PORTA |= (1 << PA0);
Als Output:
Code:
DDRA |= (1 << PA0);
PORTA |= (1 << PA0);

Du kannst ja mal nach "i = PINA;" den Wert von i ausgeben lassen, ob da auch wirklich was drinsteht.