fix tmr.interval()
This commit is contained in:
parent
b3ec03e1fe
commit
a3dc13e3fb
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue