Tut mir leid, zum Codevision kann ich im Detail nix sagen.
Im Prinzip läuft das Ganze aber immer gleich

du definierst beim WinAvr z.B,
Code:
volatile char bByte = 0;

SIGNAL(SIG_xxxxxxx)  
{
    bByte |= 1;  
}

main()
{
     // definieren speziellen Interrupt & enablen 

    sei();    / Alle Interrupts enablen

  while (1)
 {
      if ( bByte & 1)                 // warten auf interrupt
     {  
             bByte &= ~1;           // zurücksetzen
             // mach irgendwas
     }
 }
}
Das ist nur ein Strickmuster, aber so läuft's im Prinzip