From 71df60cf42d831b4d6e39dc7bee3c45f46befdab Mon Sep 17 00:00:00 2001 From: Robert HH Date: Fri, 12 May 2017 20:37:49 +0200 Subject: [PATCH] esp8266/ets_alt_task.c: Prevent spurious large increment of ticks_ms() This happened when the overflow counter for ticks_ms() was interrupted by an external hard interrupt (issue #3076). --- esp8266/ets_alt_task.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/esp8266/ets_alt_task.c b/esp8266/ets_alt_task.c index 6434f23660..ff7dba1869 100644 --- a/esp8266/ets_alt_task.c +++ b/esp8266/ets_alt_task.c @@ -120,11 +120,13 @@ bool ets_loop_iter(void) { } // handle overflow of system microsecond counter + ets_intr_lock(); uint32_t system_time_cur = system_get_time(); if (system_time_cur < system_time_prev) { system_time_high_word += 1; // record overflow of low 32-bits } system_time_prev = system_time_cur; + ets_intr_unlock(); //static unsigned cnt; bool progress = false;