int SW = 3, CLK = 7, DT = 6, count = 0, last = 0, limit = 15;
void setup() {
pinMode(SW, INPUT);
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
DDRB = 0xFF;
}
void loop() {
bool A = digitalRead(CLK), B = digitalRead(DT);
if (A > last && B) {
count += 1;
if (count > limit) count = 0;
}
if (A > last && !B) {
count -= 1;
if (count < 0) count = limit;
}
PORTB = count << 1;
last = A;
}