output text on Seven-segment display, 4 digits, SPI, 74HC4094PW

Dependents:   Exam_TK Exam_TK

Revision:
0:f8d176816ac2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QuadDisplay2.cpp	Thu Jun 13 16:25:50 2019 +0000
@@ -0,0 +1,103 @@
+#include "QuadDisplay2.h"
+#include "mbed.h"
+
+QuadDisplayMy::QuadDisplayMy(SPI *spi, PinName cs_pin) : 
+        _dev_spi(spi), _cs_pin(cs_pin)
+{
+    assert (spi);
+   _cs_pin = 0;  
+}
+
+void QuadDisplayMy::displayDigits(uint8_t *text)
+{
+    int i;
+     _dev_spi->lock();
+     _cs_pin = 0;  
+     for (i=0;i<4;i++)
+        _dev_spi->write(conv(text[i])); 
+     _cs_pin = 1;
+     _dev_spi->unlock(); 
+}
+
+uint8_t QuadDisplayMy::conv(uint8_t c)
+{
+    uint8_t a;
+    switch (c){
+       case char(0):
+          a=QD_NONE;
+          break; 
+       case char(1):
+          a=QD_DOT;
+          break; 
+       case char(2):
+          a=QD_MINUS;
+          break;           
+       case char(3):
+          a=QD_UNDERSCORE;
+          break; 
+       case char(4):
+          a=QD_DEGREE;
+          break; 
+       case char(5):
+          a=QD_UNDER_DEGREE;
+          break;         
+       case char(6):
+          a=QD_UPPERSCORE;
+          break; 
+       case char(7):
+          a=QD_COMMAS;
+          break; 
+       case char(8):
+          a=QD_UNDERCOMMAS;
+          break;                            
+       
+       case '-':     
+          a=QD_MINUS;  
+          break;                                              
+       case '0':
+          a=QD_0;
+          break;
+       case '1':
+          a=QD_1; 
+          break;
+       case '2':
+          a=QD_2; 
+          break;          
+       case '3':
+          a=QD_3;
+          break;
+       case '4':
+          a=QD_4;
+          break; 
+       case '5':
+          a=QD_5;
+          break;
+       case '6':
+          a=QD_6;
+          break; 
+       case '7':
+          a=QD_7;
+          break; 
+       case '8':
+          a=QD_8;
+          break;
+       case '9':
+          a=QD_9;
+          break;  
+       case 'd':
+       case 'D':         
+          a=QD_d;
+          break;            
+       case 'P':
+       case 'p':         
+          a=QD_P;
+          break;    
+       case 'H':
+       case 'h':         
+          a=QD_H;
+          break;                                
+       default:
+          a=QD_NONE;                                         
+    }  
+    return a^0xff;     
+}