From e2d234d495f93d296fe7bc2c6f07cad9a101b448 Mon Sep 17 00:00:00 2001 From: improti Date: Sat, 10 Oct 2015 03:59:26 +0200 Subject: [PATCH 1/6] Update Adafruit_7Segment.py Added comments to point out how to control the different colons seperately --- Adafruit_LEDBackpack/Adafruit_7Segment.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Adafruit_LEDBackpack/Adafruit_7Segment.py b/Adafruit_LEDBackpack/Adafruit_7Segment.py index f5965404..c7d596a6 100644 --- a/Adafruit_LEDBackpack/Adafruit_7Segment.py +++ b/Adafruit_LEDBackpack/Adafruit_7Segment.py @@ -45,6 +45,14 @@ def setColon(self, state=True): # Warning: This function assumes that the colon is character '2', # which is the case on 4 char displays, but may need to be modified # if another display type is used + + # To seperately control the different colons, use the following values: + # 0x02 - center colon + # 0x04 - left colon - upper dot + # 0x08 - left colon - lower dot + # 0x10 - decimal point + # 0xFFFF - everything + if (state): self.disp.setBufferRow(2, 0xFFFF) else: From 910aa854adc0ba414b23511882791967bd8f3e30 Mon Sep 17 00:00:00 2001 From: improti Date: Sun, 11 Oct 2015 17:47:45 +0200 Subject: [PATCH 2/6] Update ex_7segment_clock.py Added explanations to colon-toggling --- Adafruit_LEDBackpack/ex_7segment_clock.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Adafruit_LEDBackpack/ex_7segment_clock.py b/Adafruit_LEDBackpack/ex_7segment_clock.py index 99f00ab1..4e841822 100644 --- a/Adafruit_LEDBackpack/ex_7segment_clock.py +++ b/Adafruit_LEDBackpack/ex_7segment_clock.py @@ -23,7 +23,8 @@ # Set minutes segment.writeDigit(3, int(minute / 10)) # Tens segment.writeDigit(4, minute % 10) # Ones - # Toggle colon + # Toggle colon as configured in Adafruit_7Segment.py + # (by using even seconds vs. odd seconds) segment.setColon(second % 2) # Toggle colon at 1Hz # Wait one second time.sleep(1) From bb4dfcb82186d68a737d33f205b234da728c8024 Mon Sep 17 00:00:00 2001 From: improti Date: Mon, 12 Oct 2015 13:15:12 +0200 Subject: [PATCH 3/6] Documented setup of different colons as well as how the toggle works --- Adafruit_LEDBackpack/Adafruit_7Segment.py | 6 +++++- Adafruit_LEDBackpack/ex_7segment_clock.py | 14 +++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Adafruit_LEDBackpack/Adafruit_7Segment.py b/Adafruit_LEDBackpack/Adafruit_7Segment.py index c7d596a6..6d9b4e66 100644 --- a/Adafruit_LEDBackpack/Adafruit_7Segment.py +++ b/Adafruit_LEDBackpack/Adafruit_7Segment.py @@ -46,7 +46,11 @@ def setColon(self, state=True): # which is the case on 4 char displays, but may need to be modified # if another display type is used - # To seperately control the different colons, use the following values: + # Some 7Segment-Display have several different colons, e.g. the + # 1,2" display. To seperately control such different colons + # use the following values where applicable: + # + # 0x00 - nothing # 0x02 - center colon # 0x04 - left colon - upper dot # 0x08 - left colon - lower dot diff --git a/Adafruit_LEDBackpack/ex_7segment_clock.py b/Adafruit_LEDBackpack/ex_7segment_clock.py index 4e841822..05fdbf49 100644 --- a/Adafruit_LEDBackpack/ex_7segment_clock.py +++ b/Adafruit_LEDBackpack/ex_7segment_clock.py @@ -23,8 +23,12 @@ # Set minutes segment.writeDigit(3, int(minute / 10)) # Tens segment.writeDigit(4, minute % 10) # Ones - # Toggle colon as configured in Adafruit_7Segment.py - # (by using even seconds vs. odd seconds) - segment.setColon(second % 2) # Toggle colon at 1Hz - # Wait one second - time.sleep(1) + + # Toggle colon(s) as configured in Adafruit_7Segment.py + # every second (by using even seconds vs. odd seconds) + if (second % 2 == 0): # reminder = 0 -> even second + self.segment.setColon(0) # turn colons off + else: # reminder != 0 -> odd second + self.segment.setColon(1) # turn colons on + + time.sleep(1) # Wait one second From 4997d8bdca450d7e0a96287629c3e0a57322ba39 Mon Sep 17 00:00:00 2001 From: improti Date: Mon, 12 Oct 2015 13:18:51 +0200 Subject: [PATCH 4/6] Documented setup of different colons as well as how the toggle works --- Adafruit_LEDBackpack/ex_7segment_clock.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Adafruit_LEDBackpack/ex_7segment_clock.py b/Adafruit_LEDBackpack/ex_7segment_clock.py index 05fdbf49..5b4875a3 100644 --- a/Adafruit_LEDBackpack/ex_7segment_clock.py +++ b/Adafruit_LEDBackpack/ex_7segment_clock.py @@ -27,8 +27,8 @@ # Toggle colon(s) as configured in Adafruit_7Segment.py # every second (by using even seconds vs. odd seconds) if (second % 2 == 0): # reminder = 0 -> even second - self.segment.setColon(0) # turn colons off + segment.setColon(0) # turn colons off else: # reminder != 0 -> odd second - self.segment.setColon(1) # turn colons on + segment.setColon(1) # turn colons on time.sleep(1) # Wait one second From 8583a29ba31edc1a591b533a0ae86de095602a22 Mon Sep 17 00:00:00 2001 From: improti Date: Mon, 12 Oct 2015 19:08:10 +0200 Subject: [PATCH 5/6] moved the hexadecimal mask for what colons to display to a variable to allow modification during runtime --- Adafruit_LEDBackpack/Adafruit_7Segment.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Adafruit_LEDBackpack/Adafruit_7Segment.py b/Adafruit_LEDBackpack/Adafruit_7Segment.py index 6d9b4e66..dbfd84e9 100644 --- a/Adafruit_LEDBackpack/Adafruit_7Segment.py +++ b/Adafruit_LEDBackpack/Adafruit_7Segment.py @@ -13,6 +13,18 @@ class SevenSegment: disp = None + + # Some 7Segment-Display have several different colons, e.g. the + # 1,2" display. To seperately control such different colons + # use the following values where applicable: + # + # 0x00 - nothing + # 0x02 - center colon + # 0x04 - left colon - upper dot + # 0x08 - left colon - lower dot + # 0x10 - decimal point + # 0xFFFF - everything (default) + mask_colons = 0xFFFF # Hexadecimal character lookup table (row 1 = 0..9, row 2 = A..F) digits = [ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, \ @@ -58,7 +70,7 @@ def setColon(self, state=True): # 0xFFFF - everything if (state): - self.disp.setBufferRow(2, 0xFFFF) + self.disp.setBufferRow(2, self.mask_colons) else: self.disp.setBufferRow(2, 0) From b9a724a7bac0ed965bb52f8699a840186922473a Mon Sep 17 00:00:00 2001 From: improti Date: Mon, 12 Oct 2015 19:18:31 +0200 Subject: [PATCH 6/6] removed redundant comments --- Adafruit_LEDBackpack/Adafruit_7Segment.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/Adafruit_LEDBackpack/Adafruit_7Segment.py b/Adafruit_LEDBackpack/Adafruit_7Segment.py index dbfd84e9..c3c9c55e 100644 --- a/Adafruit_LEDBackpack/Adafruit_7Segment.py +++ b/Adafruit_LEDBackpack/Adafruit_7Segment.py @@ -58,17 +58,6 @@ def setColon(self, state=True): # which is the case on 4 char displays, but may need to be modified # if another display type is used - # Some 7Segment-Display have several different colons, e.g. the - # 1,2" display. To seperately control such different colons - # use the following values where applicable: - # - # 0x00 - nothing - # 0x02 - center colon - # 0x04 - left colon - upper dot - # 0x08 - left colon - lower dot - # 0x10 - decimal point - # 0xFFFF - everything - if (state): self.disp.setBufferRow(2, self.mask_colons) else: