Hi ,
I think , there is no direct substitute to pulseIn()
you can catch the timing using two methods
1. Polling -> under Linux application environment "mmap()" the GPIO Registers ,Set the MUX register to input mode & start polling the Input status .
2. Interrupt -> under linux , mmap the gpio registers , Enable Falling/edge detect interrupt ( refer the datasheet for base address), subscribe to that interrupt number "request_irg()".. Caclulate the time difference between 2 low/high interrupts.. use clock_gettime()
Note : Polling method eats your CPU Cycles..
Under any OS environment ,1ms latency is guaranteed, so you might not be able to get the exact timing if the pulse width is less than 1ms/1khz .. (exception is hardware based time stamping)
So if you want the exact value , you have to use baremetal coding .. but no QT :)
varghese.