Hallo

Bei deiner Ansteuerung musst du während sleep(185); messen. Mein Messpunkt war 100 Einheiten nach dem Impulsende. Weil deine Sleep()-Ansteuerung um den Faktor 10 langsamer ist, würde ich etwa folgenden Messpunkt vorschlagen:

sleep(10);
readADC(kanal); // Nicht zusammen mit task_ADC() verwenden!
sleep(175);

Zusätzlich (noch vor demSleep(10);) musst du die Datenrichtung des Pins auf Eingang setzen!

In der RP6-Library wird der ADC mit externer Spannungsreferenz und Prescaler /64 verwendet, beim M32 weiß ich das nicht auswendig. Ich verwende die internen 5V und Prescaler /16. Vor allem das vielmal schnellere Wandeln der Spannung könnte wichtig für diese Servo-Sensor-Funktion sein. Vielleicht solltest du für die ersten Versuche dieses Setup übernehmen, bzw. Prescaler /32 bei 16MHz des M32.

Gruß

mic