Sfoglia il codice sorgente

add:gpio增加虚拟GPIO定义

alienwalker 1 anno fa
parent
commit
edecebe410
2 ha cambiato i file con 30 aggiunte e 18 eliminazioni
  1. 3 18
      demo/gpio/powerkey/main.lua
  2. 27 0
      luat/modules/luat_lib_gpio.c

+ 3 - 18
demo/gpio/powerkey/main.lua

@@ -8,24 +8,9 @@ log.info("main", PROJECT, VERSION)
 -- sys库是标配
 _G.sys = require("sys")
 
-local rtos_bsp = rtos.bsp()
-
-local function pinx()
-    if rtos_bsp == "EC618" then -- AIR780E                          -- 35是虚拟GPIO,见https://wiki.luatos.com/chips/air780e/iomux.html#id1
-        return 35           
-    elseif string.find(rtos_bsp,"EC718") then -- AIR780EP                    -- 46是虚拟GPIO
-        return 46
-    else
-        return 255 
-    end
-end
-
-
-local powerkey_pin = pinx()                                         -- 赋值powerkey引脚编号
-
-if powerkey_pin ~= 255 then
-    gpio.setup(powerkey_pin, function() 
-        log.info("pwrkey", gpio.get(powerkey_pin))
+if gpio.PWR_KEY then
+    gpio.setup(gpio.PWR_KEY, function() 
+        log.info("pwrkey", gpio.get(gpio.PWR_KEY))
     end, gpio.PULLUP)
 else
     log.info("bsp not support")

+ 27 - 0
luat/modules/luat_lib_gpio.c

@@ -662,6 +662,11 @@ static int l_gpio_get_count(lua_State *L) {
 }
 
 #include "rotable2.h"
+
+#if (defined CHIP_EC618) || (defined CHIP_EC718) || (defined CHIP_EC716)
+#include "platform_define.h"
+#endif
+
 static const rotable_Reg_t reg_gpio[] =
 {
     { "setup" ,         ROREG_FUNC(l_gpio_setup )},
@@ -700,9 +705,31 @@ static const rotable_Reg_t reg_gpio[] =
     { "HIGH_IRQ",       ROREG_INT(Luat_GPIO_HIGH_IRQ)},
     //@const LOW_IRQ number 低电平触发,部分设备支持
     { "LOW_IRQ",        ROREG_INT(Luat_GPIO_LOW_IRQ)},
+#if (defined CHIP_EC618) || (defined CHIP_EC718) || (defined CHIP_EC716)
+
+    //@const WAKEUP0 number WAKEUP_PAD
+    { "WAKEUP0",         ROREG_INT(HAL_WAKEUP_0)},
+    //@const WAKEUP1 number WAKEUP_PAD
+    { "WAKEUP1",         ROREG_INT(HAL_WAKEUP_1)},
+    //@const WAKEUP2 number WAKEUP_PAD
+    { "WAKEUP2",         ROREG_INT(HAL_WAKEUP_2)},
+#if (defined CHIP_EC718) || (defined CHIP_EC716)
+    //@const WAKEUP3 number WAKEUP_PAD
+    { "WAKEUP3",         ROREG_INT(HAL_WAKEUP_3)},
+    //@const WAKEUP4 number WAKEUP_PAD
+    { "WAKEUP4",         ROREG_INT(HAL_WAKEUP_4)},
+    //@const WAKEUP5 number WAKEUP_PAD
+    { "WAKEUP5",         ROREG_INT(HAL_WAKEUP_5)},
+    //@const charge_detect_pad number WAKEUP_PAD
+    { "CHG_DET",         ROREG_INT(HAL_WAKEUP_CHARGE)},
+#endif
+	//@const POWERKEY number WAKEUP_PAD
+	{ "PWR_KEY",         ROREG_INT(HAL_WAKEUP_PWRKEY)},
+#endif
 	{ NULL,             ROREG_INT(0) }
 };
 
+
 LUAMOD_API int luaopen_gpio( lua_State *L ) {
     memset(gpios, 0, sizeof(gpio_ctx_t) * LUAT_GPIO_PIN_MAX);
     luat_newlib2(L, reg_gpio);