Hallo,

ich hab mal einen Blick auf den Source geworfen. Abgesehen davon dass er etwas wirr programmiert ist, sieht die ganze Sache gut aus. Mir ist zumindest kein Fehler aufgefallen.

Mal ne Frage: Du schreibst, dass der ADC nach ca. 10 Min schlechte Werte liefert.

Daraus würde ich nun mal ableiten, dass das Programm sehrwohl weiterrent, nur am Eingang des ADC gibts ein Problem. Hast Du die Spannung da mal gecheckt?

Oder anders rum gefragt: Woraus schließt Du dass es am Code liegt?
Simuliert MPLAB das nicht anstandslos. Du kannst Dir die verstichene Zeit in der StopWatch ansehen.

Den ADC kannst Du übrigens auch in MPLAB simulieren. Mithilfe des Simulus und der SCL (Im Microchip-Forum gibts dazu ein Beispiel Skript)
kannst Du die Eingabe von Analogen Signalen nachstellen.

Ich würde aber eher auf ein HW-Problem tippen mit den Informationen die Du hier gibst.

Gruß
Mario