diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/display/ssd1306.py | 2 | ||||
-rw-r--r-- | drivers/onewire/ds18x20.py | 5 | ||||
-rw-r--r-- | drivers/onewire/onewire.py | 2 |
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) |