ИМХО изврат:
Код: Выделить всё
uchar encoder(void)
{
uchar *newV;
uchar newZ;
newV[0] = (PINB & 0x03);
_delay_ms(5);
newV[1] = (PINB & 0x03);
_delay_ms(5);
newV[2] = (PINB & 0x03);
if((newV[1]==newV[0])||(newV[1]==newV[2])) newZ=newV[1];
if(newV[0]==newV[2]) newZ=newV[0];
else return 0;
if(oldZ==newZ) return 0;
if((oldZ==0)||(oldZ==3))
{
if(!((newZ==2)||(newZ==1))) return 0;
if(oldZ==0)
{
if((oldZ=newZ)==1) return RIGHT;
else return LEFT;
}
if(oldZ==3)
{
if((oldZ=newZ)==2) return RIGHT;
else return LEFT;
}
}
if((oldZ==1)||(oldZ==2))
{
if(!((newZ==0)||(newZ==3))) return 0;
if(oldZ==1)
{
if((oldZ=newZ)==3) return RIGHT;
else return LEFT;
}
if(oldZ==2)
{
if((oldZ=newZ)==0) return RIGHT;
else return LEFT;
}
}
}И все равно не работает



