LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。
TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。
1、硬件RTC
使用os.time,返回的是unix时间戳,再用os.date可以展示具体时间
测试代码:
[Lua] 纯文本查看 复制代码 time = os.time()
hms = os.date("RTC时间 = %H:%M:%S", time)
print(hms)
2、ms毫秒相关
(1) delayms,实现毫秒延迟,比如延迟10ms,就是delayms(10)
(2) get_runtime, 用于获取系统上电时间,单位ms,调用方法
[Lua] 纯文本查看 复制代码 local time
function printf(...)
print(string.format(...))
end
time = get_runtime()
printf("系统上电时间=%dms", time)
(3) check_runtime,用于获取距离指定时刻的时间差,单位ms
比如:
[Lua] 纯文本查看 复制代码
local time
local diff
function printf(...)
print(string.format(...))
end
time = get_runtime()
printf("当前时间=%dms", time)
delayms(1000)
diff = check_runtime(time)
printf("时间差=%dms", diff)
3、us微妙相关
(1) delayus,实现微秒延迟,比如延迟100us,就是delayus(100)
(2) get_runtime_us, 用于获取系统上电时间,单位us,调用方法
[Lua] 纯文本查看 复制代码 function printf(...)
print(string.format(...))
end
time = get_runtime_us()
printf("系统上电时间=%dus", time)
(3) check_runtime_us,用于获取距离指定时刻的时间差,单位us
[Lua] 纯文本查看 复制代码 local time
local diff
function printf(...)
print(string.format(...))
end
time = get_runtime_us()
printf("当前时间=%dms", time)
delayms(1000)
diff = check_runtime_us(time)
printf("时间差=%dms", diff)
小应用:H7-TOOL的LUA实现的RTC+微秒级时间戳获取方法
代码:
[Lua] 纯文本查看 复制代码 local us
local diffus
local time
function printf(...)
print(string.format(...))
end
us = get_runtime_us()
time = os.time()
while(1)
do
diffus = check_runtime_us(us)
printf("%s:%06d", os.date("系统运行时间 = %H:%M:%S", time+diffus//1000000), diffus%1000000)
delayms(100)
end
|