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

Dependents:   Exam_TK Exam_TK

Committer:
docent
Date:
Thu Jun 13 16:25:50 2019 +0000
Revision:
0:f8d176816ac2
For my students 13.06.2019

Who changed what in which revision?

UserRevisionLine numberNew contents of line
docent 0:f8d176816ac2 1 #include "QuadDisplay2.h"
docent 0:f8d176816ac2 2 #include "mbed.h"
docent 0:f8d176816ac2 3
docent 0:f8d176816ac2 4 QuadDisplayMy::QuadDisplayMy(SPI *spi, PinName cs_pin) :
docent 0:f8d176816ac2 5 _dev_spi(spi), _cs_pin(cs_pin)
docent 0:f8d176816ac2 6 {
docent 0:f8d176816ac2 7 assert (spi);
docent 0:f8d176816ac2 8 _cs_pin = 0;
docent 0:f8d176816ac2 9 }
docent 0:f8d176816ac2 10
docent 0:f8d176816ac2 11 void QuadDisplayMy::displayDigits(uint8_t *text)
docent 0:f8d176816ac2 12 {
docent 0:f8d176816ac2 13 int i;
docent 0:f8d176816ac2 14 _dev_spi->lock();
docent 0:f8d176816ac2 15 _cs_pin = 0;
docent 0:f8d176816ac2 16 for (i=0;i<4;i++)
docent 0:f8d176816ac2 17 _dev_spi->write(conv(text[i]));
docent 0:f8d176816ac2 18 _cs_pin = 1;
docent 0:f8d176816ac2 19 _dev_spi->unlock();
docent 0:f8d176816ac2 20 }
docent 0:f8d176816ac2 21
docent 0:f8d176816ac2 22 uint8_t QuadDisplayMy::conv(uint8_t c)
docent 0:f8d176816ac2 23 {
docent 0:f8d176816ac2 24 uint8_t a;
docent 0:f8d176816ac2 25 switch (c){
docent 0:f8d176816ac2 26 case char(0):
docent 0:f8d176816ac2 27 a=QD_NONE;
docent 0:f8d176816ac2 28 break;
docent 0:f8d176816ac2 29 case char(1):
docent 0:f8d176816ac2 30 a=QD_DOT;
docent 0:f8d176816ac2 31 break;
docent 0:f8d176816ac2 32 case char(2):
docent 0:f8d176816ac2 33 a=QD_MINUS;
docent 0:f8d176816ac2 34 break;
docent 0:f8d176816ac2 35 case char(3):
docent 0:f8d176816ac2 36 a=QD_UNDERSCORE;
docent 0:f8d176816ac2 37 break;
docent 0:f8d176816ac2 38 case char(4):
docent 0:f8d176816ac2 39 a=QD_DEGREE;
docent 0:f8d176816ac2 40 break;
docent 0:f8d176816ac2 41 case char(5):
docent 0:f8d176816ac2 42 a=QD_UNDER_DEGREE;
docent 0:f8d176816ac2 43 break;
docent 0:f8d176816ac2 44 case char(6):
docent 0:f8d176816ac2 45 a=QD_UPPERSCORE;
docent 0:f8d176816ac2 46 break;
docent 0:f8d176816ac2 47 case char(7):
docent 0:f8d176816ac2 48 a=QD_COMMAS;
docent 0:f8d176816ac2 49 break;
docent 0:f8d176816ac2 50 case char(8):
docent 0:f8d176816ac2 51 a=QD_UNDERCOMMAS;
docent 0:f8d176816ac2 52 break;
docent 0:f8d176816ac2 53
docent 0:f8d176816ac2 54 case '-':
docent 0:f8d176816ac2 55 a=QD_MINUS;
docent 0:f8d176816ac2 56 break;
docent 0:f8d176816ac2 57 case '0':
docent 0:f8d176816ac2 58 a=QD_0;
docent 0:f8d176816ac2 59 break;
docent 0:f8d176816ac2 60 case '1':
docent 0:f8d176816ac2 61 a=QD_1;
docent 0:f8d176816ac2 62 break;
docent 0:f8d176816ac2 63 case '2':
docent 0:f8d176816ac2 64 a=QD_2;
docent 0:f8d176816ac2 65 break;
docent 0:f8d176816ac2 66 case '3':
docent 0:f8d176816ac2 67 a=QD_3;
docent 0:f8d176816ac2 68 break;
docent 0:f8d176816ac2 69 case '4':
docent 0:f8d176816ac2 70 a=QD_4;
docent 0:f8d176816ac2 71 break;
docent 0:f8d176816ac2 72 case '5':
docent 0:f8d176816ac2 73 a=QD_5;
docent 0:f8d176816ac2 74 break;
docent 0:f8d176816ac2 75 case '6':
docent 0:f8d176816ac2 76 a=QD_6;
docent 0:f8d176816ac2 77 break;
docent 0:f8d176816ac2 78 case '7':
docent 0:f8d176816ac2 79 a=QD_7;
docent 0:f8d176816ac2 80 break;
docent 0:f8d176816ac2 81 case '8':
docent 0:f8d176816ac2 82 a=QD_8;
docent 0:f8d176816ac2 83 break;
docent 0:f8d176816ac2 84 case '9':
docent 0:f8d176816ac2 85 a=QD_9;
docent 0:f8d176816ac2 86 break;
docent 0:f8d176816ac2 87 case 'd':
docent 0:f8d176816ac2 88 case 'D':
docent 0:f8d176816ac2 89 a=QD_d;
docent 0:f8d176816ac2 90 break;
docent 0:f8d176816ac2 91 case 'P':
docent 0:f8d176816ac2 92 case 'p':
docent 0:f8d176816ac2 93 a=QD_P;
docent 0:f8d176816ac2 94 break;
docent 0:f8d176816ac2 95 case 'H':
docent 0:f8d176816ac2 96 case 'h':
docent 0:f8d176816ac2 97 a=QD_H;
docent 0:f8d176816ac2 98 break;
docent 0:f8d176816ac2 99 default:
docent 0:f8d176816ac2 100 a=QD_NONE;
docent 0:f8d176816ac2 101 }
docent 0:f8d176816ac2 102 return a^0xff;
docent 0:f8d176816ac2 103 }