Ivan Grokhotkov 8 лет назад
Родитель
Сommit
abe9516fdc
2 измененных файлов с 16 добавлено и 1 удалено
  1. 1 1
      components/console/linenoise/linenoise.c
  2. 15 0
      components/newlib/time.c

+ 1 - 1
components/console/linenoise/linenoise.c

@@ -898,7 +898,7 @@ int linenoiseProbe() {
     int timeout_ms = 200;
     size_t read_bytes = 0;
     while (timeout_ms > 0 && read_bytes < 4) { // response is ESC[0n or ESC[3n
-        usleep(1000);
+        usleep(10000);
         char c;
         int cb = fread(&c, 1, 1, stdin);
         read_bytes += cb;

+ 15 - 0
components/newlib/time.c

@@ -16,6 +16,7 @@
 #include <stdlib.h>
 #include <time.h>
 #include <reent.h>
+#include <unistd.h>
 #include <sys/types.h>
 #include <sys/reent.h>
 #include <sys/time.h>
@@ -244,6 +245,20 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz)
 #endif
 }
 
+int usleep(useconds_t us)
+{
+    const int us_per_tick = portTICK_PERIOD_MS * 1000;
+    if (us < us_per_tick) {
+        ets_delay_us((uint32_t) us);
+    } else {
+        /* since vTaskDelay(1) blocks for anywhere between 0 and portTICK_PERIOD_MS,
+         * round up to compensate.
+         */
+        vTaskDelay((us + us_per_tick - 1) / us_per_tick);
+    }
+    return 0;
+}
+
 uint32_t system_get_time(void)
 {
 #if defined( WITH_FRC1 ) || defined( WITH_RTC )