跳转至

statem - SM状态机

statem.create(count, repeat)

创建一个新的状态机.

参数

传入值类型 解释
int 指令条数,默认32条
int 重复执行的次数, 0 代表不重复, 正整数代表具体重复执行的次数. 暂不支持永续执行

返回值

返回值类型 解释
some 若成功,返回状态机指针,否则返回nil

例子

gpio.setup(7, 0, gpio.PULLUP)
gpio.setup(12, 0, gpio.PULLUP)
gpio.setup(13, 0, gpio.PULLUP)
gpio.setup(14, 0, gpio.PULLUP)
local sm =  statem.create()
            :gpio_set(7, 0) -- gpio设置为低电平
            :usleep(10)     -- 休眠10us
            :gpio_set(7, 1) -- gpio设置为高电平
            :usleep(40)     -- 休眠40us
            :gpio_set(12, 1) -- gpio设置为高电平
            :gpio_set(13, 1) -- gpio设置为高电平
            :gpio_set(14, 1) -- gpio设置为高电平
            :usleep(40)      -- 休眠40us
            :gpio_set(7, 0) -- gpio设置为低电平
            :finish()

-- 执行之,后续会支持后台执行
sm:exec()