unsigned char coder, old_coder; unsigned int encoder;
void ENCODER(void) { coder=PORTC&0b00000011; switch (coder) { case st1: if (old_coder==st4) ++encoder; if (old_coder==st2) --encoder; break; case st2: if (old_coder==st1) ++encoder; if (old_coder==st3) --encoder; break; case st3: if (old_coder==st2) ++encoder; if (old_coder==st4) --encoder; break; case st4: if (old_coder==st3) ++encoder; if (old_coder==st1) --encoder; break; } old_coder=coder; }