Hallo faratt,
hat leider eine Weile gedauert, aber jetzt konnte ich mich deinem Problem etwas näher widmen. Deine Lösung funktioniert zwar, aber es sollte etwas anders gelöst werden. Der Fehler steckt wie du schon richtig erkannt hast, in der PollSwitch Funktion.
RN-User thowil hatte mich schon vor über einem Jahr auf den Fehler hingewiesen und mir eine funktionierende Lösung geschickt. Leider habe ich die wohl irgendwie verschlampt.
Schande über mich.
So geht es richtig:
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; // Port-Bit auf LOW (PullUp abschalten)
Der Port Bit muß am Ende der Funktion wieder auf Eingang geschaltet werden. Diese Zeile fehlte.
Lesezeichen