working asm pulseIn implementation