TVZ Mechatronics Team / SevenSegmentDisplay
Committer:
tbjazic
Date:
Thu Dec 11 08:01:43 2014 +0000
Revision:
0:9378fe6db796
Library SevenSegmentDisplay created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tbjazic 0:9378fe6db796 1 #include "SevenSegmentDisplay.h"
tbjazic 0:9378fe6db796 2
tbjazic 0:9378fe6db796 3 SevenSegmentDisplay::SevenSegmentDisplay(PinName a,
tbjazic 0:9378fe6db796 4 PinName b,
tbjazic 0:9378fe6db796 5 PinName c,
tbjazic 0:9378fe6db796 6 PinName d,
tbjazic 0:9378fe6db796 7 PinName e,
tbjazic 0:9378fe6db796 8 PinName f,
tbjazic 0:9378fe6db796 9 PinName g,
tbjazic 0:9378fe6db796 10 PinName dp,
tbjazic 0:9378fe6db796 11 ConnectionMode mode):
tbjazic 0:9378fe6db796 12 display(dp, g, f, e, d, c, b, a)
tbjazic 0:9378fe6db796 13 {
tbjazic 0:9378fe6db796 14 display.output();
tbjazic 0:9378fe6db796 15 if (mode == CommonAnode)
tbjazic 0:9378fe6db796 16 display.mode(OpenDrain);
tbjazic 0:9378fe6db796 17 this->mode = mode;
tbjazic 0:9378fe6db796 18 init();
tbjazic 0:9378fe6db796 19 }
tbjazic 0:9378fe6db796 20
tbjazic 0:9378fe6db796 21 void SevenSegmentDisplay::init() {
tbjazic 0:9378fe6db796 22 if (mode == CommonAnode)
tbjazic 0:9378fe6db796 23 display = 0xFF;
tbjazic 0:9378fe6db796 24 else
tbjazic 0:9378fe6db796 25 display = 0x00;
tbjazic 0:9378fe6db796 26 }
tbjazic 0:9378fe6db796 27
tbjazic 0:9378fe6db796 28 void SevenSegmentDisplay::turnOn(int disp) {
tbjazic 0:9378fe6db796 29 if (mode == CommonAnode)
tbjazic 0:9378fe6db796 30 display = disp;
tbjazic 0:9378fe6db796 31 else
tbjazic 0:9378fe6db796 32 display = ~disp;
tbjazic 0:9378fe6db796 33 }
tbjazic 0:9378fe6db796 34
tbjazic 0:9378fe6db796 35 void SevenSegmentDisplay::print(char c) {
tbjazic 0:9378fe6db796 36 switch(c) { // a b c d e f g dp
tbjazic 0:9378fe6db796 37 case '0':
tbjazic 0:9378fe6db796 38 turnOn(0x03); // 0 0 0 0 0 0 1 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 39 break;
tbjazic 0:9378fe6db796 40 case '1':
tbjazic 0:9378fe6db796 41 turnOn(0x9F); // 1 0 0 1 1 1 1 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 42 break;
tbjazic 0:9378fe6db796 43 case '2':
tbjazic 0:9378fe6db796 44 turnOn(0x25); // 0 0 1 0 0 1 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 45 break;
tbjazic 0:9378fe6db796 46 case '3':
tbjazic 0:9378fe6db796 47 turnOn(0x0D); // 0 0 0 0 1 1 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 48 break;
tbjazic 0:9378fe6db796 49 case '4':
tbjazic 0:9378fe6db796 50 turnOn(0x99); // 1 0 0 1 1 0 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 51 break;
tbjazic 0:9378fe6db796 52 case '5':
tbjazic 0:9378fe6db796 53 turnOn(0x49); // 0 1 0 0 1 0 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 54 break;
tbjazic 0:9378fe6db796 55 case '6':
tbjazic 0:9378fe6db796 56 turnOn(0x41); // 0 1 0 0 0 0 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 57 break;
tbjazic 0:9378fe6db796 58 case '7':
tbjazic 0:9378fe6db796 59 turnOn(0x1F); // 0 0 0 1 1 1 1 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 60 break;
tbjazic 0:9378fe6db796 61 case '8':
tbjazic 0:9378fe6db796 62 turnOn(0x01); // 0 0 0 0 0 0 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 63 break;
tbjazic 0:9378fe6db796 64 case '9':
tbjazic 0:9378fe6db796 65 turnOn(0x09); // 0 0 0 0 1 0 0 1 (CommonAnode, ~CommonCathode)
tbjazic 0:9378fe6db796 66 break;
tbjazic 0:9378fe6db796 67 default:
tbjazic 0:9378fe6db796 68 init();
tbjazic 0:9378fe6db796 69 }
tbjazic 0:9378fe6db796 70 }