16-GPRS(Air202)關於多個檔案中的變數呼叫和定時器
阿新 • • 發佈:2018-11-16
https://www.cnblogs.com/yangfengwu/p/9968405.html
因為自己看到好多問多個檔案呼叫的,感覺這個應該說一說
對了大家有沒有知道這個是幹什麼的
大家有沒有看這篇 https://www.cnblogs.com/yangfengwu/p/8965054.html
實際上,這是lua5.幾新加的功能,就是為了省掉那些複雜的程式
我又新建了一個test1
讓test 呼叫 test1裡面的一個變數
下載進去
注意哈,這樣是不允許的,再用test1請求test檔案,然後呼叫test裡面的值
如果想這樣做,其實可以再做一個檔案哈,裡面放一個變數,然後test和test1都可以請求這個檔案並操作這個變數
現在看定時器
我這裡就直接說啦 一次性的定時器(執行一遍就完)(不帶ID)
module(...,package.seeall) --[[ 函式名:print 功能 :列印介面,此檔案中的所有列印都會加上test字首 引數 :無 返回值:無 ]] local function print(...) _G.print("test",...) end local function Timer1() print("一次的定時器,沒有ID") end sys.timer_start(Timer1,10000)//延時10S呼叫Timer1函式
下載看看
一次性的不需要關閉,因為是自己關閉
然後來個迴圈的
module(...,package.seeall) --[[ 函式名:print 功能 :列印介面,此檔案中的所有列印都會加上test字首 引數 :無 返回值:無 ]] local function print(...) _G.print("test",...) end local function Timer1() print("一次的定時器,沒有ID") end sys.timer_start(Timer1,10000) local function Timer2() print("這個是迴圈定時器,沒有ID") end sys.timer_loop_start(Timer2,2000)
現在用一個變數在裡面加一,加到5停止這個定時器
module(...,package.seeall) --[[ 函式名:print 功能 :列印介面,此檔案中的所有列印都會加上test字首 引數 :無 返回值:無 ]] local function print(...) _G.print("test",...) end local function Timer1() print("一次的定時器,沒有ID") end sys.timer_start(Timer1,10000) local cnt=0 local function Timer2() print("這個是迴圈定時器,沒有ID")
cnt=cnt+1 if cnt>=5 then cnt=0 sys.timer_stop(Timer2)--直接填入函式停止
print("這個是迴圈定時器,沒有ID,現在停止") end end sys.timer_loop_start(Timer2,2000)
現在說帶ID的,可以看一下
module(...,package.seeall) --[[ 函式名:print 功能 :列印介面,此檔案中的所有列印都會加上test字首 引數 :無 返回值:無 ]] local function print(...) _G.print("test",...) end local function Timer1() print("一次的定時器,沒有ID") end sys.timer_start(Timer1,10000) local cnt=0 local function Timer2() print("這個是迴圈定時器,沒有ID") cnt=cnt+1 if cnt>=5 then cnt=0 sys.timer_stop(Timer2)--直接填入函式停止 print("這個是迴圈定時器,沒有ID,現在停止") end end sys.timer_loop_start(Timer2,2000) local cnt1=0 local function Timer3() print("這個是迴圈定時器,有ID") cnt1=cnt1+1 if cnt1>=5 then cnt1=0 sys.timer_stop(1)--直接填入函式停止 print("這個是迴圈定時器,有ID,現在停止") end end sys.timer_loop_start(Timer3,2000,1)
所以
這樣可以停止
好現在控制燈每進一次定時器就反轉一次,就是週期性亮滅
local function Timer4() pio.pin.setval(1-pio.pin.getval(pio.P0_5),pio.P0_5) end sys.timer_loop_start(Timer4,2000,1)
1-pio.pin.getval(pio.P0_5)
pio.pin.getval(pio.P0_5)是讀取引腳的高低電平狀態 1-這個(0或者1) 正好是反轉得到1和0
最終所有的原始碼
module(...,package.seeall) --[[ 函式名:print 功能 :列印介面,此檔案中的所有列印都會加上test字首 引數 :無 返回值:無 ]] local function print(...) _G.print("test",...) end local function Timer1() print("一次的定時器,沒有ID") end sys.timer_start(Timer1,10000) local cnt=0 local function Timer2() print("這個是迴圈定時器,沒有ID") cnt=cnt+1 if cnt>=5 then cnt=0 sys.timer_stop(Timer2)--直接填入函式停止 print("這個是迴圈定時器,沒有ID,現在停止") end end sys.timer_loop_start(Timer2,2000) local cnt1=0 local function Timer3() print("這個是迴圈定時器,有ID") cnt1=cnt1+1 if cnt1>=5 then cnt1=0 sys.timer_stop(Timer3,1) print("這個是迴圈定時器,有ID,現在停止") end end sys.timer_loop_start(Timer3,2000,1) pio.pin.setdir(pio.OUTPUT,pio.P0_5) pio.pin.setval(0,pio.P0_5) local function Timer4() pio.pin.setval(1-pio.pin.getval(pio.P0_5),pio.P0_5) end sys.timer_loop_start(Timer4,2000,1)
定時器就說到這裡哈
資料原始碼連結
連結:https://pan.baidu.com/s/1-SRfsKGQ7rZVvFmp1ObHWw 密碼:p9qs
基礎教程原始碼連結如果失效,請在淘寶介紹中下載,由於連結還是失效,請聯絡賣家,謝謝
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-18540610442.6.36a74814ZSaRsu&id=569295486025