int8_t encoder_scan(uint8_t a, uint8_t b)
{
int8_t tmp=0;
if(bit_is_set(PIND, a) && bit_is_set(PIND, b)) goto encoder_scan_return;
DELAY_MS(1);
if(bit_is_set(PIND, a) && bit_is_set(PIND, b)) goto encoder_scan_return;
if(bit_is_clear(PIND, a)) tmp=1;
else tmp=-1;
while(bit_is_clear(PIND, a) || bit_is_clear(PIND, b));
DELAY_MS(1);
encoder_scan_return: return tmp;
}