Nachdem du die Anforderung gesendet hast, startest du einen Timer, der dir nach ca 1ms einen Interrupt gibt. In diesem Interrupt setzt du ein Flag, das in der main-Schleife abgefragt wird. Ist dieses Flag gesetzt, liest du den Wert vom Sensor aus und setzt das Flag zurück. Somit kann der Microcontroller während dem warten etwas anderes tun, da der Timer hardwarebasiert ist.