Ich glaub, ich hab das Problem schon vor längerer Zeit gelöst.
Hier die meine modifizierte Start_Switch() Funktion, die den Spannungslevel für die Messung korrekt einstellt. Hier wird auch die Variable switched immer auf FALSE gesetzt. Das ist nun im Programm nicht mehr nötig.

/* for working with Interrupt */
void StartSwitch(void)
{
switched=0;
DDRD |= SWITCHES; // Switches as Output
SWITCH_ON; // Output HIGH for measurement
Sleep(10); // Load high level
SWITCH_OFF;
DDRD &= ~SWITCHES; // Switches as Input => ext. Int 1
MCUCR &= ~((1 << ISC11) | (1 << ISC10)); // Low level generates interrupt
GICR |= (1 << INT1); // Enable external Interrupt 1
}

Bitte ersetze den Teil in der asuro.c
Gruß
Weja