随着H7-TOOL的LUA API不断扩充加大,有必要测试下长时间运行的稳定性了。
有时候大家想使用LUA长时间测试一些数据,这个时候稳定性就非常重要了,所以专门做个系统性的研究。
先弄个案例测试下,看看现象。
[Lua] 纯文本查看 复制代码 function printf(...)
print(string.format(...))
end
--启动模拟量电路
function start_dso(void)
write_reg16(0x01FF, 2) -- 测量模式 0:示波器 1:负载电流 2:多路低速扫描
write_reg16(0x0200, 1) -- CH1耦合,0:AC 1:DC
write_reg16(0x0201, 1) -- CH2耦合,0:AC 1:DC
--量程取值 0:±13.8V 1:±6.4V 2:±3.2V 3:±1.6V 4:±800mV 5:±400mV 6:±200mV 7:±100mV
write_reg16(0x0202, 0) -- CH1量程
write_reg16(0x0203, 0) -- CH2量程
write_reg16(0x0204, 0) -- CH1通道直流偏值,未用
write_reg16(0x0205, 0) -- CH2通道直流偏值,未用
write_reg16(0x0206, 12) --采样频率 0:100 1:200 2:500 3:1K 4:2K 5:5K 6:10K 7:20K
--8:50K 9:100K 10:200K 11:500K 12:1M 13:2M 14:5M
write_reg16(0x0207, 0) --采样深度 0:1K 1:2K 3:4K 4:8K 5:16K 6:32K
write_reg16(0x0208, 32768) --触发电平ADC 0-65535
write_reg16(0x0209, 50) --触发位置百分比 0-100
write_reg16(0x020A, 0) --触发模式 0:自动 1:普通 2:单次
write_reg16(0x020B, 0) --触发通道 0:CH1 1:CH2
write_reg16(0x020C, 0) --触发边沿 0:下降沿 1:上升沿
write_reg16(0x020D, 0x03) --通道使能控制 bit0 = CH1 bit1 = CH2
write_reg16(0x020E, 1) --采集控制 0:停止 1:启动
end
print("V1.0")
local us = 0
local volt = 0
local cur = 0
local mah = 0
local pre_sec = 0
local sec_cnt = 1
local min_cnt = 1
local cur_sec = 0
start_dso()
pwron_st = get_runtime() -- 系统上电时的时间戳
while(true)
do
cur_ms = check_runtime(pwron_st)
--delayms(500)
if(cur_ms >= 1000) then
cur_sec = cur_sec+ 1
pwron_st = get_runtime()
cur = read_analog(3) --3 - 高端负载电流
volt = read_analog(2) --2 - 高侧负载电压
mah = mah + (cur / 3600)
printf("tp:%.2fs v:%.2fv i:%.2fma w:%.2fmah",cur_sec,volt,cur,mah)
sec_cnt = sec_cnt + 1
if(sec_cnt == 60) then
sec_cnt = 1
min_cnt = min_cnt + 1
printf("tp:%.2fs v:%.2fv i:%.2fma w:%.2fmah",cur_sec,volt,cur,mah)
end
end
end
|