#define F_CPU 20000000L #include #include #include #include #define outputA PB3 #define outputB PB4 uint8_t counter = 0, aState = 0, aLastState = 0; void setup() { DDRB &= ~((1 << outputA) | (1 << outputB)); PORTB |= ((1 << outputA) | (1 << outputB)); Serial.begin (115200); aLastState = (PINB & (1 << outputA)); } void loop() { aState = (PINB & (1 << outputA)); if (aState != aLastState) { if ((PINB & (1 << outputB)) != (aState)) { counter ++; } if ((PINB & (1 << outputB)) != (aLastState)) { counter --; } Serial.print("Position: "); Serial.println(counter); } aLastState = aState; }