Просмотр исходного кода

Merge branch 'master' of https://gitee.com/openLuat/LuatOS

Dozingfiretruck 3 лет назад
Родитель
Сommit
1f21a82cbd
3 измененных файлов с 38 добавлено и 29 удалено
  1. 1 1
      .github/workflows/air780ci_notify.yml
  2. 1 1
      components/wlan/luat_lib_wlan.c
  3. 36 27
      demo/adc/main.lua

+ 1 - 1
.github/workflows/air780ci_notify.yml

@@ -26,4 +26,4 @@ jobs:
       run: |
         sudo pip3 install paho_mqtt gitpython requests
         cd tools
-        python3 ciNotify.py $MQTTADDR $MQTTPORT $MQTTTOPIC "http://luat.papapoi.com:23380/openLuat/luatos-soc-ec618" "Air780编译" "$DD_APPKEY" "$DD_APPSECRET" "$DD_NOTIFY_LIST" "$DD_API_TOKEN" "$DD_API_SEND"
+        python3 ciNotify.py $MQTTADDR $MQTTPORT $MQTTTOPIC "http://luat.papapoi.com:23380/openLuat/luatos-soc-2022" "Air780编译" "$DD_APPKEY" "$DD_APPSECRET" "$DD_NOTIFY_LIST" "$DD_API_TOKEN" "$DD_API_SEND"

+ 1 - 1
components/wlan/luat_lib_wlan.c

@@ -233,7 +233,7 @@ static int l_wlan_smartconfig(lua_State *L) {
 
 /*
 获取mac
-@api wlan.getMode()
+@api wlan.getMac()
 @return string MAC地址,十六进制字符串形式 "AABBCCDDEEFF"
 */
 static int l_wlan_get_mac(lua_State* L){

+ 36 - 27
demo/adc/main.lua

@@ -1,14 +1,18 @@
+
+--[[
+1. Air101,Air103 模块上的ADC0脚-PA1, 0~2.4v,不要超过范围使用!!!
+2. Air101,Air103模块上的ADC1脚-PA4, 0~2.4v,不要超过范围使用!!!
+3. Air103 模块上的ADC2脚-PA2, 0~2.4v,不要超过范围使用!!! 
+4. Air103 模块上的ADC3脚-PA3, 0~2.4v,不要超过范围使用!!! 
+5. Air101,Air103 ADC10 为内部温度 ,11为VBAT
+6. Air105 adc参考电压是1.88V,所有通道一致,
+7. Air105内部分压没有隔离措施,在开启内部分压后,量程有所变化,具体看寄存器手册,1~5分压后能测到3.6,6通道能接近5V,但是不能直接测5V,可以测4.2V 0通道是始终开启无法关闭分压。
+8. Air780E内部ADC接口为12bits 外部直流分压为0-3.4V
+9. Air780E内部具有2个ADC接口,ADC0 -- AIO3 ADC1 -- AIO4 
+10. 特殊通道, CPU内部温度Temp -- 10 主供电脚电压 VBAT -- 11
+]]
+
 -- LuaTools需要PROJECT和VERSION这两个信息
--- Air101,Air103 模块上的ADC0脚-PA1, 0~2.4v,不要超过范围使用!!!
--- Air101,Air103模块上的ADC1脚-PA4, 0~2.4v,不要超过范围使用!!!
--- Air103 模块上的ADC2脚-PA2, 0~2.4v,不要超过范围使用!!! 
--- Air103 模块上的ADC3脚-PA3, 0~2.4v,不要超过范围使用!!! 
--- Air101,Air103 ADC10 为内部温度 ,11为VBAT
--- Air105 adc参考电压是1.88V,所有通道一致,
--- Air105内部分压没有隔离措施,在开启内部分压后,量程有所变化,具体看寄存器手册,1~5分压后能测到3.6,6通道能接近5V,但是不能直接测5V,可以测4.2V 0通道是始终开启无法关闭分压。
--- Air780E内部ADC接口为12bits 外部直流分压为0-3.4V
--- Air780E内部具有2个ADC接口,ADC0 -- AIO3 ADC1 -- AIO4 
--- Temp -- 10 VBAT -- 11
 PROJECT = "adcdemo"
 VERSION = "1.0.0"
 
@@ -22,24 +26,25 @@ if wdt then
     wdt.init(9000) -- 初始化watchdog设置为9s
     sys.timerLoopStart(wdt.feed, 3000) -- 3s喂一次狗
 end
+
 local rtos_bsp = rtos.bsp()
 function adc_pin() -- 根据不同开发板,设置ADC编号
     if rtos_bsp == "AIR101" then -- Air101开发板ADC编号
-        return 0,1,255,255,10,11
+        return 0,1,255,255,adc.CH_CPU or 10,adc.CH_VBAT or 11
     elseif rtos_bsp == "AIR103" then -- Air103开发板ADC编号
-        return 0,1,2,3,10,11
+        return 0,1,2,3,adc.CH_CPU or 10,adc.CH_VBAT or 11
     elseif rtos_bsp == "AIR105" then -- Air105开发板ADC编号
         return 0,5,6,255,255,255
     elseif rtos_bsp == "ESP32C3" then -- ESP32C3开发板ADC编号
-        return 0,1,2,3,4,adc.CH_CPU 
+        return 0,1,2,3,4,adc.CH_CPU or 10
     elseif rtos_bsp == "EC618" then --Air780E开发板ADC编号
-        return 0,1,255,255,10,11 --
+        return 0,1,255,255,adc.CH_CPU or 10,adc.CH_VBAT or 11
     else
         log.info("main", "define ADC pin in main.lua")
         return 0, 0,0,0,0,0
     end
 end
-local adc_pin_0,adc_pin_1,adc_pin_2,adc_pin_3,adc_pin_4,adc_pin_5=adc_pin()
+local adc_pin_0,adc_pin_1,adc_pin_2,adc_pin_3,adc_pin_temp,adc_pin_vbat=adc_pin()
 sys.taskInit(function()
     if rtos_bsp == "AIR105" then
         adc.setRange(adc.ADC_RANGE_3_6) --开启的内部分压,可以把量程扩大
@@ -48,36 +53,40 @@ sys.taskInit(function()
     if adc_pin_1 and adc_pin_1 ~= 255 then adc.open(adc_pin_1) end
     if adc_pin_2 and adc_pin_2 ~= 255 then adc.open(adc_pin_2) end
     if adc_pin_3 and adc_pin_3 ~= 255 then adc.open(adc_pin_3) end
-    if adc_pin_4 and adc_pin_4 ~= 255 then adc.open(adc_pin_4) end
-    if adc_pin_5 and adc_pin_5 ~= 255 then adc.open(adc_pin_5) end
+    if adc_pin_temp and adc_pin_temp ~= 255 then adc.open(adc_pin_temp) end
+    if adc_pin_vbat and adc_pin_vbat ~= 255 then adc.open(adc_pin_vbat) end
+
+    -- 下面是循环打印, 接地不打印0也是正常现象
+    -- ADC的精度都不会太高, 若需要高精度ADC, 建议额外添加adc芯片
     while true do
         if adc_pin_0 and adc_pin_0 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_0), adc.read(adc_pin_0))
+            log.debug("adc", "adc" .. tostring(adc_pin_0), adc.get(adc_pin_0)) -- 若adc.get报nil, 改成adc.read
         end
         if adc_pin_1 and adc_pin_1 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_1), adc.read(adc_pin_1))
+            log.debug("adc", "adc" .. tostring(adc_pin_1), adc.get(adc_pin_1))
         end
         if adc_pin_2 and adc_pin_2 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_2), adc.read(adc_pin_2))
+            log.debug("adc", "adc" .. tostring(adc_pin_2), adc.get(adc_pin_2))
         end
         if adc_pin_3 and adc_pin_3 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_3), adc.read(adc_pin_3))
+            log.debug("adc", "adc" .. tostring(adc_pin_3), adc.get(adc_pin_3))
         end
-        if adc_pin_4 and adc_pin_4 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_4), adc.read(adc_pin_4))
+        if adc_pin_temp and adc_pin_temp ~= 255 then
+            log.debug("adc", "CPU TEMP", adc.get(adc_pin_temp))
         end
-        if adc_pin_5 and adc_pin_5 ~= 255 then
-            log.debug("adc", "adc" .. tostring(adc_pin_5), adc.read(adc_pin_5))
+        if adc_pin_vbat and adc_pin_vbat ~= 255 then
+            log.debug("adc", "VBAT", adc.get(adc_pin_vbat))
         end
         sys.wait(500)
     end
 
+    -- 若不再读取, 可关掉adc, 降低功耗, 非必须
     if adc_pin_0 and adc_pin_0 ~= 255 then adc.close(adc_pin_0) end
     if adc_pin_1 and adc_pin_1 ~= 255 then adc.close(adc_pin_1) end
     if adc_pin_2 and adc_pin_2 ~= 255 then adc.close(adc_pin_2) end
     if adc_pin_3 and adc_pin_3 ~= 255 then adc.close(adc_pin_3) end
-    if adc_pin_4 and adc_pin_4 ~= 255 then adc.close(adc_pin_4) end
-    if adc_pin_5 and adc_pin_5 ~= 255 then adc.close(adc_pin_5) end
+    if adc_pin_temp and adc_pin_temp ~= 255 then adc.close(adc_pin_temp) end
+    if adc_pin_vbat and adc_pin_vbat ~= 255 then adc.close(adc_pin_vbat) end
 
 end)
 -- 用户代码已结束---------------------------------------------