Commit a3dc13e3 authored by devsaurus's avatar devsaurus
Browse files

fix tmr.interval()

parent b3ec03e1
...@@ -192,12 +192,13 @@ static int tmr_interval(lua_State* L) ...@@ -192,12 +192,13 @@ static int tmr_interval(lua_State* L)
luaL_argcheck(L, interval > 0 && interval <= MAX_TIMEOUT, 2, MAX_TIMEOUT_ERR_STR); luaL_argcheck(L, interval > 0 && interval <= MAX_TIMEOUT, 2, MAX_TIMEOUT_ERR_STR);
if (tmr->mode != TIMER_MODE_OFF) { if (tmr->mode != TIMER_MODE_OFF) {
tmr->interval = interval; tmr->interval = interval;
if (!(tmr->mode & TIMER_IDLE_FLAG)) { if (xTimerChangePeriod(tmr->timer,
xTimerStop(tmr->timer, portMAX_DELAY); pdMS_TO_TICKS(tmr->interval),
if (xTimerChangePeriod(tmr->timer, tmr->interval, portMAX_DELAY) != pdPASS) { portMAX_DELAY) != pdPASS) {
luaL_error(L, "cannot change period"); luaL_error(L, "cannot change period");
} }
// stop again since xTimerChangePeriod will re-start the timer if (tmr->mode & TIMER_IDLE_FLAG) {
// xTimerChangePeriod will start a dormant timer, thus force stop if it was dormant
xTimerStop(tmr->timer, portMAX_DELAY); xTimerStop(tmr->timer, portMAX_DELAY);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment