1
0
mirror of https://github.com/mbirth/wipy-ussd1306.git synced 2024-12-24 22:44:05 +00:00

More low-level functions.

This commit is contained in:
Markus Birth 2016-02-29 01:18:06 +01:00
parent b737ff2eb5
commit b79ad1b4cc

View File

@ -77,8 +77,8 @@ class SSD1306:
self.set_osc_freq(8, False) # set oscillator freq., but don't send to LCD yet
self.set_clock_div(1) # set clock div and send osc_freq+clock_div to LCD
self.set_mux_ratio(self.height) # set multiplex ratio to 64 (default), for 32px: 32
self.command([0xd3, 0x00]) # set disp offset to 0
self.command(0x40|0x00) # set start line to 0
self.set_disp_offset(0) # set display offset to 0
self.set_disp_start_line(0) # set display start line to 0
self.command([0x8d, 0x14]) # chargepump on (ext. VCC - off: 0x10)
self.set_addressing(self.ADDRESSING_HORIZ)
self.command(0xa0|0x10) # segment remap (invalid value: 0xb0, maybe 0x01?)
@ -120,6 +120,16 @@ class SSD1306:
assert 16 <= mux_ratio <= 64, "Mux ratio must be between 16 and 64."
self.command([0xa8, (mux_ratio-1)])
def set_disp_offset(self, offset):
""" Sets the display offset (vertical shift). """
assert 0 <= offset < 63, "Offset must be between 0 and 63."
self.command([0xd3, offset])
def set_disp_start_line(self, start_line):
""" Sets the display RAM start line register. """
assert 0 <= start_line < 63, "Start line must be between 0 and 63."
self.command(0x40 | start_line)
def set_adressing(self, addr):
""" Sets the adressing mode """
assert addr in [self.ADDRESSING_HORIZ, self.ADDRESSING_VERT, self.ADDRESSING_PAGE], "Addressing must be ADDRESSING_HORIZ, ADDRESSING_VERT or ADDRESSING_PAGE."