Hallo

Die Formel für 16bit-Werte lautet:
uint16_t distance = (highbyte*256)+lowbyte;

Das ist der Grund für deine 256 im Ergebniss, mit * dürfte es 0 sein. Warum der Wert immer 0 ist liegt vielleicht an deiner etwas knappen Wartezeit: mSleep(65); Irgendwo habe ich letzens was von minimaler Wartezeit=65ms gelesen, größer dürfte beim Testen sicher nicht schaden.

Gruß

mic