Original: if (fractionUSecs) { *fractionUSecs = (uint32_t) elapsedUSec / UMTS::gFrameMicroseconds; }
Should be: if (fractionUSecs) { *fractionUSecs = (uint32_t) elapsedUSec % UMTS::gFrameMicroseconds; }
Otherwise: sometimes l1WaitToSend() will wait for thousands seconds!!!!!