Wie ist bei deinem Programm die Variable "timer" deklariert.
Braucht er nicht zu deklarieren - ist im RP6Lib drin als
volatile uint16_t timer;


@Blenderkid: Du hast aber auch an ADC0 oder ADC1 was angeschlossen? Eventuell mal den anderen Kanal verwenden falls Du da was verwechselt hast beim anschließen?

Poste mal nach den Modifikationen die mic vorgeschlagen hat die komplette Ausgabe des Programms!

Und zusätzlich würde ich einfach an vielen Stellen (z.B. Beginn/Ende einer Funktion, in den If Bedingungen etc. ) mal probeweise
writeString_P("#1#\n");
...
writeString_P("#2#\n");
...
usw. hinschreiben immer mit anderen Nummern natürlich. Dann weisst Du genau an welche Stellen Dein Programm hinspringt und wo es hakt.

Evtl. noch ein mSleep(100) in die Hauptschleife reinmachen damit die Ausgaben nicht zu schnell erfolgen.

Sobald das Programm dann funktioniert, kannst Du die ganzen Ausgaben wieder entfernen.

MfG,
SlyD

EDIT:
PINA & 8 ist natürlich E_INT1.
PINA & 4 ist allerdings nicht ADC1...

Schreib das am besten immer so: PINA & ADC0, PINA & E_INT1, PINC & SCL etc. dann weiss man auch direkt welcher Pin gemeint ist.
Diese ganzen Definitionen findest Du in der Datei RP6RobotBase.h