1
0
mirror of https://github.com/wjwwood/serial.git synced 2026-01-22 11:44:53 +08:00

Eliminate modulus operator.

This commit is contained in:
Mike Purvis 2013-10-31 00:22:13 -04:00
parent d8a1ef4ecf
commit 589e7b9a3b

View File

@ -61,8 +61,9 @@ MillisecondTimer::MillisecondTimer (const uint32_t millis)
{ {
int64_t tv_nsec = expiry.tv_nsec + (millis * 1e6); int64_t tv_nsec = expiry.tv_nsec + (millis * 1e6);
if (tv_nsec > 1e9) { if (tv_nsec > 1e9) {
expiry.tv_nsec = tv_nsec % (int)1e6; int64_t sec_diff = tv_nsec / (int)1e6;
expiry.tv_sec += tv_nsec / (int)1e6; expiry.tv_nsec = tv_nsec - (int)(1e6 * sec_diff);
expiry.tv_sec += sec_diff;
} }
} }
@ -101,7 +102,7 @@ timespec_from_ms (const uint32_t millis)
{ {
timespec time; timespec time;
time.tv_sec = millis / 1e3; time.tv_sec = millis / 1e3;
time.tv_nsec = (millis % (int)1e3) * 1e6; time.tv_nsec = (millis - (time.tv_sec * 1e3)) * 1e6;
} }
Serial::SerialImpl::SerialImpl (const string &port, unsigned long baudrate, Serial::SerialImpl::SerialImpl (const string &port, unsigned long baudrate,