changeset 10:f8c42337be20

Fix seg14 character mapping, handle dot
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Wed, 11 May 2016 16:38:40 +0200
parents 547fe7ed765e
children 2d138dbeebd5
files ht16k33_seg.py
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ht16k33_seg.py	Wed May 11 00:32:25 2016 +0200
+++ b/ht16k33_seg.py	Wed May 11 16:38:40 2016 +0200
@@ -3,7 +3,7 @@
 
 CHARS = [
     0b00000000, 0b00000000, #
-    0b00000000, 0b00000110, # !
+    0b01000000, 0b00000110, # !
     0b00000010, 0b00100000, # "
     0b00010010, 0b11001110, # #
     0b00010010, 0b11101101, # $
@@ -33,7 +33,7 @@
     0b00100100, 0b00000000, # <
     0b00000000, 0b11001000, # =
     0b00001001, 0b00000000, # >
-    0b00010000, 0b10000011, # ?
+    0b01100000, 0b10100011, # ?
     0b00000010, 0b10111011, # @
     0b00000000, 0b11110111, # A
     0b00010010, 0b10001111, # B
@@ -62,7 +62,7 @@
     0b00010101, 0b00000000, # Y
     0b00001100, 0b00001001, # Z
     0b00000000, 0b00111001, # [
-    0b00100001, 0b00000000, #
+    0b00100001, 0b00000000, # \
     0b00000000, 0b00001111, # ]
     0b00001100, 0b00000011, # ^
     0b00000000, 0b00001000, # _
@@ -137,12 +137,13 @@
         if char == '.':
             self.buffer[index * 2 + 1] |= 0b01000000
             return
-        c = ord(char) * 2 + 32
+        c = ord(char) * 2 - 64
         self.buffer[index * 2] = CHARS[1 + c]
         self.buffer[index * 2 + 1] = CHARS[c]
 
     def push(self, char):
         if char != '.' or self.buffer[7] & 0b01000000:
+            self.put(' ', 3)
             self.scroll()
         self.put(char, 3)
 
@@ -153,7 +154,8 @@
     def number(self, number):
         s = "{:f}".format(number)
         if len(s) > 4:
-            raise ValueError("Overflow")
+            if s.find('.') > 4:
+                raise ValueError("Overflow")
         self.fill(False)
         self.text(s)