16-GPRS(Air202)关于多个文件中的变量调用和定时器

因为自己看到好多问多个文件调用的,感觉这个应该说一说

对了大家有没有知道这个是干什么的

大家有没有看这篇 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MasiMaro 的技术博文

为什么C语言会有头文件

前段时间一个刚转到C语言的同事问我,为什么C会多一个头文件,而不是像Java和Python那样所有的代码都在源文件中。我当时回答的是C是静态语言很多东西都是需要...

2335
来自专栏好好学java的技术栈

「附数据结构资源」玩转java并发(六):深入线程Thread类的start()方法和run()方法

java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都...

1062
来自专栏Linyb极客之路

并发编程之Condition

一、引言 在java中,对于任意一个java对象,它都拥有一组定义在java.lang.Object上监视器方法,包括wait(),wait(long time...

3479
来自专栏java达人

基本线程同步(一) 同步方法

在这个指南中,我们将学习在Java中如何使用一个最基本的同步方法,即使用 synchronized关键字来控制并发访问方法。只有一个执行线程将会...

4149
来自专栏电光石火

Linux Shell 基本语法

一. Linux基本命令 1.1.  cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大。 语法: cp [选项...

2477
来自专栏Laoqi's Linux运维专列

for 循环,while循环,break,continue,exit

3668
来自专栏电光石火

Linux Shell 基本语法

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大。

1936
来自专栏DannyHoo的专栏

block和代理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1413
来自专栏电光石火

获取URL地址中的GET参数

/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL...

2279
来自专栏desperate633

第7课 创建计算字段拼接字段执行简单的算术运算

什么是计算字段? 就是直接从数据库中检索出转换,计算或者格式化的数据,而不是检索出数据之后,再在客户端应用程序中重新格式化。

732

扫码关注云+社区

领取腾讯云代金券