Ни че не понял

Вам нужно установить флажок чтоб знать, что прерывание было?
Ну так переменная temp должна быть не локальной
char temp;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
PORTB=0;
temp=0;
}
main()
{
for(;;){
while(temp);
// bla bla bla
temp=1;
}
}
и все....
Так или нет?