Luat实例教程:adc

本示例实现的功能是:读取adc值。

1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)

2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。

module(...,package.seeall)

3.定义print函数,调试用

local function print(...)
    _G.print("test",...)
end

4.定义adc_id

local ADC_ID = 0

5.编写ADC读取函数

local function read()   
    --打开adc
    adc.open(ADC_ID)
    --读取adc
    --adcval为number类型,表示adc的原始值,无效值为0xFFFF
    --voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF;adc.read接口返回的voltval放大了3倍,所以需要除以3还原成原始电压
    local adcval,voltval = adc.read(ADC_ID)
    print("adc.read",adcval,voltval/3,voltval)
    --如果adcval有效
    if adcval and adcval~=0xFFFF then
    end
    --如果voltval有效   
    if voltval and voltval~=0xFFFF then
        --adc.read接口返回的voltval放大了3倍,所以此处除以3
        voltval = voltval/3
    end
end

6.循环读取adc值

sys.timer_loop_start(read,1000)

7.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件(注意:main.lua只能有一个)。在main.lua中把test加载进去就好了。sys.init()是对系统初始化,sys.run()是系统主程序。这两句必须有。

--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "ADC"
VERSION = "1.0.0"
require"sys"
require"test"
sys.init(0,0)
sys.run()

!!!attention

一个工程只有一个main.lua

  • 完整代码见下链接
    • Air800-Air202

你可能感兴趣的:(Luat实例教程:adc)