Das while mittendrin erschließt sich mir nicht...

Versuchs mal so, evtl. ist es das ja was du willst?
Code:
int main(void){
   DDRA |= 0b00000001;         //PA0 als Ausgang definieren
   PORTA &= ~(1<<PA0);         //PA0 auf Low schalten (LED aus)
   PORTA |= (1<<PA1), (1<<PA2);//PA1 und PA2 auf High setzen
   while(1){
      if((!(PINA&(1<<PA1))) && (PINA&(1<<PA2))){    //Wenn Taster (PA1) betätigt und Taster (PA2) nicht betätigt, dann...
         PORTA |= (1<<PA0);   //... schalte LED ein
      }
      if((!(PINA&(1<<PA2))) && (PINA&(1<<PA1))) {  //wenn Taster (PA1) nicht betätigt und Taster (PA2) betätigt...
         PORTA &= ~(1<<PA0); //... dann LED aus
      }
   }
   return 0;
}