pwrkey.lua 824 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. local poweron_pin = 46 -- 赋值poweron引脚编号
  2. local power_off_flag = false -- 是否正在关机
  3. local count=0 -- 五秒内短按三次关机
  4. local function pwrkeycb()
  5. log.info("poweron_key", gpio.get(poweron_pin))
  6. if gpio.get(poweron_pin) == 0 then
  7. count=count+1
  8. sys.timerStart(function()
  9. log.info("计数归零")
  10. count=0
  11. end, 5000)
  12. if count>=3 then
  13. power_off_flag = true
  14. -- pm.shutdown()
  15. end
  16. end
  17. end
  18. if poweron_pin ~= 255 then
  19. gpio.setup(poweron_pin, pwrkeycb, gpio.PULLUP,gpio.BOTH)
  20. else
  21. log.info("bsp not support")
  22. end
  23. sys.taskInit(function()
  24. while true do
  25. if power_off_flag then
  26. sys.wait(1000)
  27. pm.shutdown()
  28. end
  29. sys.wait(100)
  30. end
  31. end)