Hallo,

ich glaub das mit der IF-Abfrage ist noch nicht ganz ausgereift,
was willst Du damit genau machen:
Code:
if( PORTB |= (1<<LED) )
...
das ist zumindest immer wahr, denn die Zuweisung an sich wird kein false zurück liefern.

Was verwendest Du für einen C-Compiler, denn das mit der ISR einstellen ist mir jetzt nicht so geläufig ?