I have device running on ESP32 using this timer library.
Timer stop working after 49 days. It seem due to the uint32 value of millis() overflow ( 2^32 / 1000 / 3600 / 24 = 49.71 Days ) .
if (!m_callsArray[i].active || m_callsArray[i].timestamp > timestamp) continue;
I suppose this statement is always true when millis back near 0 and the stored value in m_callsArray is pretty close to 2^32 .
I have device running on ESP32 using this timer library.
Timer stop working after 49 days. It seem due to the uint32 value of millis() overflow ( 2^32 / 1000 / 3600 / 24 = 49.71 Days ) .
if (!m_callsArray[i].active || m_callsArray[i].timestamp > timestamp) continue;I suppose this statement is always true when millis back near 0 and the stored value in m_callsArray is pretty close to 2^32 .