Here is my ISR. I see the ISR getting called, I have been over everything a few times, but I'm thinking the encoder is too fast to get the pins read in time. Code below. It's 4 encoders driving a PWM pin and RGB LEDs. Any help appreciated!
I've double checked my wiring and encoder operation. It's driving the pins properly (using internal pullups with common to Gnd)
ISR(PCINT2_vect)//Vector for Encoders { if ((PIND & (1<<PIND0)==0) && (PIND & (1<<PIND1) == 0)) { RedValue ++; } if ((PIND & (1<<PIND0)==0) && (PIND & (1<<PIND1) == 1)) { RedValue --; } if ((PIND & (1<<PIND2) == 0) && (PIND & (1<<PIND3)==0)) { GreenValue ++; } if ((PIND & (1<<PIND2)==0) && (PIND & (1<<PIND3) == 1)) { GreenValue --; } if ((PIND & (1<<PIND4)==0) && (PIND & (1<<PIND5)==0)) { BlueValue ++; } if ((PIND & (1<<PIND4)==0) && (PIND & (1<<PIND5) == 1)) { BlueValue --; } if ((PIND & (1<<PIND6)==0) && (PIND & (1<<PIND1)==7)) { if (OCR1A < 255) { OCR1A ++; } } if ((PIND & (1<<PIND0)==6) && (PIND & (1<<PIND7) == 1)) { if (OCR1A > 2) { OCR1A --; } } }