timing cleanup for esp32

This commit is contained in:
folkert van heusden 2022-07-02 21:53:34 +02:00
parent f6f86ba18a
commit c9a2b39116
2 changed files with 14 additions and 12 deletions

View file

@ -43,18 +43,10 @@ void kw11_l::operator()()
if (b->get_lf_crs() & 64) if (b->get_lf_crs() & 64)
b->getCpu()->queue_interrupt(6, 0100); b->getCpu()->queue_interrupt(6, 0100);
#if defined(ESP32)
vTaskDelay(100 / portTICK_RATE_MS);
#else
myusleep(1000000 / 50); // 20ms myusleep(1000000 / 50); // 20ms
#endif
} }
else { else {
#if defined(ESP32)
vTaskDelay(100 / portTICK_RATE_MS);
#else
myusleep(1000000 / 10); // 100ms myusleep(1000000 / 10); // 100ms
#endif
} }
} }
} }

View file

@ -72,10 +72,20 @@ int parity(int v)
void myusleep(uint64_t us) void myusleep(uint64_t us)
{ {
#if defined(ESP32) #if defined(ESP32)
if (us >= 1000) for(;;) {
vTaskDelay(us / 1000 / portTICK_RATE_MS); uint64_t n_ms = us / 1000;
else
if (n_ms >= portTICK_RATE_MS) {
vTaskDelay(n_ms / portTICK_RATE_MS);
us -= n_ms * 1000;
}
else {
delayMicroseconds(us); delayMicroseconds(us);
break;
}
}
#else #else
struct timespec req; struct timespec req;