Зачем же Вы меняете в прерывании направление порта А?
Код
if(PINB1){
switch(PINA){
case 3:DDRA=7;
break;
case 7:DDRA=6;
break;
case 6:DDRA=14;
break;
case 14:DDRA=12;
break;
case 12:DDRA=28;
break;
case 28:DDRA=24;
break;
case 24:DDRA=56;
break;
case 56:DDRA=48;
break;
case 48:DDRA=49;
break;
case 49:DDRA=33;
break;
case 33:DDRA=35;
break;
case 35:DDRA=3;
break; } }
else{
switch(PINA){
case 3:DDRA=35;
break;
case 35:DDRA=33;
break;
case 33:DDRA=49;
break;
case 49:DDRA=48;
break;
case 48:DDRA=56;
break;
case 56:DDRA=24;
break;
case 24:DDRA=28;
break;
case 28:DDRA=12;
break;
case 12:DDRA=14;
break;
case 14:DDRA=6;
break;
case 6:DDRA=7;
break;
case 7:DDRA=3;
break;
скорее всего, вместо DDRA (направление порта А), Вам надо записать PORTA (состояние выхода порта А)