Timer
tmr.delay(seconds)
Ожидание указанного количества секунд, затем возвращение.
Аргументы:
- seconds: количество секунд ожидания.
Возвращает: ничего или исключение.
tmr.delayms(milliseconds)
Ожидание указанного количества миллисекунд, затем возвращение.
Аргументы:
- milliseconds: количество миллисекунд ожидания.
Возвращает: ничего или исключение.
tmr.delayus(microseconds)
Ожидание указанного количества микросекунд, затем возвращение.
Аргументы:
- microseconds: количество микросекунд ожидания.
Возвращает: ничего или исключение.
Функции сна
Функции сна приостанавливают выполнение программы на указанный период времени, приостанавливая текущий поток.
tmr.sleep(seconds)
Сон на указанное количество секунд, затем возвращение.
Аргументы:
- seconds: количество секунд сна.
Возвращает: ничего или исключение.
tmr.sleepms(milliseconds)
Сон на указанное количество миллисекунд, затем возвращение.
Аргументы:
- milliseconds: количество миллисекунд сна.
Возвращает: ничего или исключение.
tmr.sleepus(microseconds)
Сон на указанное количество микросекунд, затем возвращение.
Аргументы:
- microseconds: количество микросекунд сна.
Возвращает: ничего или исключение.
Аппаратные таймеры
instance = tmr.attach(id, period, callback)
Подключение аппаратного таймера, вызывающего функцию обратного вызова через регулярные интервалы времени, определяемые аргументом period. Таймер автоматически перезагружается после вызова функции обратного вызова.
Аргументы:
- id: идентификатор таймера. Может быть tmr.TMR0, tmr.TMR1, tmr.TMR2 или tmr.TMR3.
- period: период таймера в микросекундах.
- callback: функция обратного вызова, вызываемая при истечении таймера.
Возвращает: экземпляр таймера или исключение. Этот экземпляр таймера необходимо сохранить в переменной для дальнейших операций с ним.
instance:detach()
Отключение аппаратного таймера и освобождение всех ресурсов, используемых таймером.
Аргументы: нет. Возвращает: ничего или исключение.
instance:start()
Запуск таймера.
Аргументы: нет. Возвращает: ничего или исключение.
instance:stop()
Остановка таймера.
Аргументы: нет. Возвращает: ничего или исключение.
Пример
Этот пример использует аппаратный таймер для мигания светодиода каждые 50 миллисекунд.
-- Blink function
function blink()
if (led_on) then
pio.pin.sethigh(pio.GPIO26)
led_on = false
else
pio.pin.setlow(pio.GPIO26)
led_on = true
end
end
-- Configure the GPIO where the led is attached
pio.pin.setdir(pio.OUTPUT, pio.GPIO26)
-- Variable for store the led status
led_on = false
-- Attach the timer. 50 milliseconds = 50000 micro seconds
t0 = tmr.attach(tmr.TMR0, 50000, blink)
-- Start the timer (the led blinks)
t0:start()
...
-- Stop the timer
t0:stop()
Программные таймеры
instance = tmr.attach(period, callback)
Подключение программного таймера, вызывающего функцию обратного вызова через регулярные интервалы времени, определяемые аргументом period. Таймер автоматически перезагружается после вызова функции обратного вызова.
Аргументы:
- period: период таймера в миллисекундах.
- callback: функция обратного вызова, вызываемая при истечении таймера.
Возвращает: экземпляр таймера или исключение. Этот экземпляр таймера необходимо сохранить в переменной для дальнейших операций с ним.
instance:detach()
Отключение программного таймера и освобождение всех ресурсов, используемых таймером.
Аргументы: нет. Возвращает: ничего или исключение.
instance:start()
Запуск таймера.
Аргументы: нет. Возвращает: ничего или исключение.
instance:stop()
Остановка таймера.
Аргументы: нет. Возвращает: ничего или исключение.
Пример
Этот пример использует программный таймер для мигания светодиода каждые 50 миллисекунд.
-- Blink function
function blink()
if (led_on) then
pio.pin.sethigh(pio.GPIO26)
led_on = false
else
pio.pin.setlow(pio.GPIO26)
led_on = true
end
end
-- Configure the GPIO where the led is attached
pio.pin.setdir(pio.OUTPUT, pio.GPIO26)
-- Variable for store the led status
led_on = false
-- Attach the timer
t0 = tmr.attach(50, blink)
-- Start the timer (the led blinks)
t0:start()
...
-- Stop the timer
t0:stop()