1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

emulation on host: millis()/micros() now start at 0 (#7810)

emulation on host: millis()/micros() now start at 0
This commit is contained in:
david gauchard 2021-01-05 12:21:16 +01:00 committed by GitHub
parent 100a8df33f
commit 43f44e4b13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View File

@ -18,18 +18,24 @@
#include <unistd.h>
static struct timeval gtod0 = { 0, 0 };
extern "C" unsigned long millis()
{
timeval time;
gettimeofday(&time, NULL);
return (time.tv_sec * 1000) + (time.tv_usec / 1000);
if (gtod0.tv_sec == 0)
memcpy(&gtod0, &time, sizeof gtod0);
return ((time.tv_sec - gtod0.tv_sec) * 1000) + ((time.tv_usec - gtod0.tv_usec) / 1000);
}
extern "C" unsigned long micros()
{
timeval time;
gettimeofday(&time, NULL);
return (time.tv_sec * 1000000) + time.tv_usec;
if (gtod0.tv_sec == 0)
memcpy(&gtod0, &time, sizeof gtod0);
return ((time.tv_sec - gtod0.tv_sec) * 1000000) + time.tv_usec - gtod0.tv_usec;
}

View File

@ -295,6 +295,9 @@ int main (int argc, char* const argv [])
// install exit handler in case Esp.restart() is called
atexit(cleanup);
// first call to millis(): now is millis() and micros() beginning
millis();
setup();
while (!user_exit)
{