Исполнение с UnitX Lua (uLua)
Весь дальнейший текст только для программируемой версии
Не смотря на то, что Lua и так очень маленький язык, в такой микроконтроллер его не поместить, а иметь возможность удобно управлять логикой работы очень хочется.
Поэтому мы сделали свою упрощенную реализацию. Получился хороший компромисс для встраиваемых систем, где критичны размер кода и скорость выполнения.
Когда вы захотите расширить функционал, вам понадобится
hw.gpio_init(pin, mode)
Устанавливает режим hw.inp, hw.out, hw.pwm, hw.adc, hw.capture и т.д.
hw.gpio_init(hw.p1, hw.out)
hw.gpio_set(pin, value)
Устанавливает логический уровень 0 или 1.
hw.gpio_set(hw.p1, 1)
hw.gpio_get(pin) -> int
Читает уровень 0 или 1.
local level = hw.gpio_get(hw.p1) hw.pwm_init(pin, frequency_hz)
Инициализирует PWM на заданной частоте.
hw.pwm_set(pin, duty_percent)
Устанавливает duty cycle 0..100.
Пример:
hw.gpio_init(hw.p3, hw.pwm)
hw.pwm_init(hw.p3, 1000)
hw.pwm_set(hw.p3, 50) hw.capture_freq(pin) -> int
Возвращает частоту входного сигнала в Гц.
hw.capture_duty(pin) -> int
Возвращает duty cycle в процентах. hw.delay_ms(ms)
Задержка в миллисекундах.
hw.uptime() -> int
Секунды с момента старта устройства.
hw.now() -> int
Миллисекунды с момента старта устройства.
hw.timer_after(ms, func[, arg1[, arg2]]) -> int
Однократный запуск таймера через ms.
hw.timer_every(ms, func[, arg1[, arg2]]) -> int
Периодический запуск таймера через ms.
hw.timer_cancel(timer_id)
Отмена таймера.