Lua Key
|
|
按键为3 pin,所以设置KEY = 3。接着设置按键的gpio模式为输入模式,初始化三色LED的状态。
按键 按下时为低电平,不按时为高电平。因此使用定时器创建一个任务定时查询KEY的状态,如果按键按下了那么就输出按下的信息,点亮LED并使计数器keyCnt自增。松开按键时,通过计数器数值的大小判断是长按还是短按。 最后将计数器置零,并关闭LED。
|
|
gpio.trig()
原型: gpio.trig(pin, type, function())
作用: 设置管脚中断模式的回调函数
参数:
- 管脚号
- 取值方式,”up”, “down”, “both”, “low”, “high”, 分别代表上升沿、下降沿、双边沿、低电平、高电平触发方式
- 中断时执行的函数
tmr.now()
原型: tmr.now()
作用: 获取系统计数器的当前值,单位微秒us
首先设置KEY管脚为中断模式,接着通过 gpio.trig( ) 设置中断产生时要执行的动作。由于 按下时为低电平,不按时为高电平 ,所以当按键按下时会产生一个下降沿,松开时会产生一个上升沿。这里设置有下降沿时运行回调函数,函数运行时让count自增,用于记录按下按钮的次数,然后点亮LED。当奇数次按下KEY时,通过 tmr.now() 获取一个时间,当偶数次按下KEY时输出两次的时间间隔并熄灭LED。
这里采用了 down 下降沿触发,所以按下KEY后LED会一直常亮,如果想要第一个程序的效果,即按键按下时LED亮,松开时LED灭,可以采用 both 双边沿触发方式。