Forráskód Böngészése

Followed Vladimir Dronnikov's advices.
https://github.com/nodemcu/nodemcu-firmware/pull/156

HuangRui 9 éve
szülő
commit
f45e6fece3
1 módosított fájl, 48 hozzáadás és 45 törlés
  1. 48 45
      lua_modules/bh1750/bh1750.lua

+ 48 - 45
lua_modules/bh1750/bh1750.lua

@@ -7,48 +7,51 @@
 -- MIT license, http://opensource.org/licenses/MIT
 -- ***************************************************************************
 local moduleName = ... 
- local M = {}
- _G[moduleName] = M
-	--I2C slave address of GY-30
-	local GY_30_address = 0X23
-	-- i2c interface ID
-	local id = 0
-	--LUX
-	local l
-	--CMD
-	local CMD = 0x10
-	local init = false
-	function M.init(sda, scl)
-	i2c.setup(id, sda, scl, i2c.SLOW)
-	--print("i2c ok..")
-	init = true
-	end
-	local function read_data(ADDR, commands, length)
-	i2c.start(id)
-	i2c.address(id, ADDR, i2c.TRANSMITTER)
-	i2c.write(id, commands)
-	i2c.stop(id)
-	i2c.start(id)
-	i2c.address(id, ADDR,i2c.RECEIVER)
-	tmr.delay(200000)
-	c = i2c.read(id, length)
-	i2c.stop(id)
-	return c
-	end
-	local function read_lux()
-	dataT = read_data(GY_30_address, CMD, 2)
-	UT = string.byte(dataT, 1) * 256 + string.byte(dataT, 2)
-	l = (UT*1000/12)
-	return(l)
-	end
-	function M.read()
-	if (not init) then
-	print("init() must be called before read.")
-	else
-	read_lux()
-	end
-	end
-	function M.getlux()
-	return l
-	end
-	return M
+local M = {}
+_G[moduleName] = M
+    --I2C slave address of GY-30
+    local GY_30_address = 0x23
+    -- i2c interface ID
+    local id = 0
+    --LUX
+    local l
+    --CMD
+    local CMD = 0x10
+    local init = false
+    --Make it more faster
+    local i2c = i2c
+    function M.init(sda, scl)
+        i2c.setup(id, sda, scl, i2c.SLOW)
+    --print("i2c ok..")
+    init = true
+end
+local function read_data(ADDR, commands, length)
+    i2c.start(id)
+    i2c.address(id, ADDR, i2c.TRANSMITTER)
+    i2c.write(id, commands)
+    i2c.stop(id)
+    i2c.start(id)
+    i2c.address(id, ADDR,i2c.RECEIVER)
+    tmr.delay(200000)
+    c = i2c.read(id, length)
+    i2c.stop(id)
+    return c
+end
+local function read_lux()
+    dataT = read_data(GY_30_address, CMD, 2)
+    --Make it more faster
+    UT = dataT:byte(1) * 256 + dataT:byte(2)
+    l = (UT*1000/12)
+    return(l)
+end
+function M.read()
+    if (not init) then
+        print("init() must be called before read.")
+    else
+        read_lux()
+    end
+end
+function M.getlux()
+    return l
+end
+return M