summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/display/ssd1306.py2
-rw-r--r--drivers/onewire/ds18x20.py5
-rw-r--r--drivers/onewire/onewire.py2
3 files changed, 6 insertions, 3 deletions
diff --git a/drivers/display/ssd1306.py b/drivers/display/ssd1306.py
index ad57725e7..a8c11a1d0 100644
--- a/drivers/display/ssd1306.py
+++ b/drivers/display/ssd1306.py
@@ -32,7 +32,7 @@ class SSD1306:
self.external_vcc = external_vcc
self.pages = self.height // 8
self.buffer = bytearray(self.pages * self.width)
- self.framebuf = framebuf.FrameBuffer1(self.buffer, self.width, self.height)
+ self.framebuf = framebuf.FrameBuffer(self.buffer, self.width, self.height, framebuf.MVLSB)
self.poweron()
self.init_display()
diff --git a/drivers/onewire/ds18x20.py b/drivers/onewire/ds18x20.py
index a2f7f5c3d..342f4b28a 100644
--- a/drivers/onewire/ds18x20.py
+++ b/drivers/onewire/ds18x20.py
@@ -93,6 +93,9 @@ class DS18X20(object):
temp = temp_read - 0.25 + (count_per_c - count_remain) / count_per_c
return temp
elif rom0 == 0x28:
- return (temp_msb << 8 | temp_lsb) / 16
+ temp = (temp_msb << 8 | temp_lsb) / 16
+ if (temp_msb & 0xf8) == 0xf8: # for negative temperature
+ temp -= 0x1000
+ return temp
else:
assert False
diff --git a/drivers/onewire/onewire.py b/drivers/onewire/onewire.py
index ffeb130d6..c8016c0da 100644
--- a/drivers/onewire/onewire.py
+++ b/drivers/onewire/onewire.py
@@ -60,7 +60,7 @@ class OneWire:
# cache a bunch of methods and attributes. This is necessary in _write_bit and
# _read_bit to achieve the timing required by the OneWire protocol.
- self.cache = (pin.init, pin.value, pin.OUT_PP, pin.IN, pin.PULL_NONE)
+ self.cache = (pin.init, pin.value, pin.OUT_PP, pin.IN, pin.PULL_UP)
pin.init(pin.IN, pin.PULL_UP)