Initial commit
This commit is contained in:
commit
2e53e158cf
6 changed files with 114 additions and 0 deletions
51
dallas.lua
Normal file
51
dallas.lua
Normal file
|
@ -0,0 +1,51 @@
|
|||
function bxor(a,b)
|
||||
local r = 0
|
||||
for i = 0, 31 do
|
||||
if ( a % 2 + b % 2 == 1 ) then
|
||||
r = r + 2^i
|
||||
end
|
||||
a = a / 2
|
||||
b = b / 2
|
||||
end
|
||||
return r
|
||||
end
|
||||
|
||||
function getTemp()
|
||||
addr = ow.reset_search(pin)
|
||||
repeat
|
||||
tmr.wdclr()
|
||||
|
||||
if (addr ~= nil) then
|
||||
crc = ow.crc8(string.sub(addr,1,7))
|
||||
if (crc == addr:byte(8)) then
|
||||
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
|
||||
ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin, 0x44, 1)
|
||||
tmr.delay(1000000)
|
||||
present = ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin,0xBE, 1)
|
||||
data = nil
|
||||
data = string.char(ow.read(pin))
|
||||
for i = 1, 8 do
|
||||
data = data .. string.char(ow.read(pin))
|
||||
end
|
||||
crc = ow.crc8(string.sub(data,1,8))
|
||||
if (crc == data:byte(9)) then
|
||||
t = (data:byte(1) + data:byte(2) * 256)
|
||||
if (t > 32768) then
|
||||
t = (bxor(t, 0xffff)) + 1
|
||||
t = (-1) * t
|
||||
end
|
||||
t = t * 625
|
||||
lasttemp = t
|
||||
print("Last temp: " .. lasttemp)
|
||||
end
|
||||
tmr.wdclr()
|
||||
end
|
||||
end
|
||||
end
|
||||
addr = ow.search(pin)
|
||||
until(addr == nil)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue