| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- --[[
- @module air153C_wtd
- @summary 添加软件看门狗功能,防止死机
- @data 2023.5.23
- @author 翟科研
- @usage
- --local air153C_wtd = require ("air153C_wtd")
- -- 用法实例
- -- sys.taskInit(function ()
- -- air153C_wtd.init(28)
- -- air153C_wtd.feed_dog(28,10)--28为看门狗引脚,10为设置喂狗时间
- -- --air153C_wtd.set_time(1)--开启定时模式再打开此代码,否则无效
- -- end)
- ]]
- local sys = require "sys"
- _G.sysplus = require("sysplus")
- air153C_wtd={}
- --[[
- 初始化引脚
- @api air153C_wtd.init(watchdogPin)
- @int 看门狗控制引脚
- @return nil
- @usage
- air153C_wtd.init(28)
- ]]
- function air153C_wtd.init(watchdogPin)
- gpio.setup(watchdogPin,0,gpio.PULLDOWN)
- gpio.set(watchdogPin,0)
- end
- function air153C_wtd.callback(watchdogPin)
- gpio.set(watchdogPin,0)
- end
- --[[
- 调用此函数进行喂狗
- @api air153C_wtd.feed_dog(watchdogPin)
- @int watchdogPin设置看门狗控制引脚
- @return nil
- @usage
- air153C_wtd.feed_dog(28)
- ]]
- function air153C_wtd.feed_dog(watchdogPin)
- local watchdogFeedDuration = 400
- gpio.set(watchdogPin,1)
- sys.timerStart(air153C_wtd.callback,watchdogFeedDuration,watchdogPin)
- end
- --[[
- 调用此函数关闭喂狗,谨慎使用!
- @api air153C_wtd.close_watch_dog(watchdogPin)
- @int watchdogPin设置看门狗控制引脚
- @return nil
- @usage
- air153C_wtd.close_watch_dog(28)
- ]]
- function air153C_wtd.close_watch_dog(watchdogPin)
- local watchdogStopDuration = 700
- gpio.set(watchdogPin,1)
- sys.timerStart(air153C_wtd.callback,watchdogStopDuration,watchdogPin)
- end
- return air153C_wtd
|