Die PollSwitch() hat ja einen kleinen Fehler in der Funktion gehabt. Hast du das in deinem Code geändert?

Die PollSwitch() Methode sieht nämlich so aus.
Code:
DDRD |= SWITCHES;                     // Port-Bit SWITCHES als Output
SWITCH_ON;                            // Port-Bit auf HIGH zur Messung
i = ReadADC(SWITCH, 10);

DDRD &= ~SWITCHES;                    // Port-Bit SWITCHES als Input
SWITCH_OFF;
Nach der Messung muss der PortD wieder auf Eingang geschaltet werden. Diese Zeile fehlte. Siehe https://www.roboternetz.de/phpBB2/viewtopic.php?t=17240