output text on Seven-segment display, 4 digits, SPI, 74HC4094PW
QuadDisplay2.cpp@0:f8d176816ac2, 2019-06-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |