TVZ Mechatronics Team / SevenSegmentDisplay
Committer:
tbjazic
Date:
Thu Dec 11 09:45:08 2014 +0000
Revision:
4:21f0a3289449
Parent:
3:9c9257dda979
Documentation up.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tbjazic 0:9378fe6db796 1 #ifndef SEVEN_SEGMENT_DISPLAY_H_KEY
tbjazic 0:9378fe6db796 2 #define SEVEN_SEGMENT_DISPLAY_H_KEY
tbjazic 0:9378fe6db796 3
tbjazic 0:9378fe6db796 4 #include "mbed.h"
tbjazic 0:9378fe6db796 5
tbjazic 0:9378fe6db796 6 enum ConnectionMode {CommonAnode, CommonCathode};
tbjazic 0:9378fe6db796 7
tbjazic 4:21f0a3289449 8 /** A class for controling the output of 7-segment displays connected in
tbjazic 4:21f0a3289449 9 * common anode or common cathode mode.
tbjazic 4:21f0a3289449 10 *
tbjazic 4:21f0a3289449 11 * Author: Toni Bjazic, TVZ Mechatronics Team
tbjazic 4:21f0a3289449 12 *
tbjazic 4:21f0a3289449 13 * Example of use:
tbjazic 4:21f0a3289449 14 * @code
tbjazic 4:21f0a3289449 15 * #include "mbed.h"
tbjazic 4:21f0a3289449 16 * #include "SevenSegmentDisplay.h"
tbjazic 4:21f0a3289449 17 *
tbjazic 4:21f0a3289449 18 * Serial pc(USBTX, USBRX);
tbjazic 4:21f0a3289449 19 *
tbjazic 4:21f0a3289449 20 * int main() {
tbjazic 4:21f0a3289449 21 * SevenSegmentDisplay display(p5, p6, p7, p8, p9, p10, p11, p12, CommonCathode);
tbjazic 4:21f0a3289449 22 * char c;
tbjazic 4:21f0a3289449 23 * while(1) {
tbjazic 4:21f0a3289449 24 * pc.printf("\n\rEnter character to show on 7-segment display: ");
tbjazic 4:21f0a3289449 25 * pc.scanf("%c", &c);
tbjazic 4:21f0a3289449 26 * display.print(c);
tbjazic 4:21f0a3289449 27 * wait(0.2);
tbjazic 4:21f0a3289449 28 * }
tbjazic 4:21f0a3289449 29 * }
tbjazic 4:21f0a3289449 30 * @endcode
tbjazic 4:21f0a3289449 31 */
tbjazic 0:9378fe6db796 32 class SevenSegmentDisplay {
tbjazic 0:9378fe6db796 33 public:
tbjazic 4:21f0a3289449 34 /** Constructor receives pins on which the segments a, b, c, d, e, f, g and dp
tbjazic 4:21f0a3289449 35 * are connected (respectively). Last (9th) argument is connection mode (CommonAnode
tbjazic 4:21f0a3289449 36 * or CommonCathode), and defaults to CommonAnode.
tbjazic 4:21f0a3289449 37 */
tbjazic 0:9378fe6db796 38 SevenSegmentDisplay(PinName a,
tbjazic 0:9378fe6db796 39 PinName b,
tbjazic 0:9378fe6db796 40 PinName c,
tbjazic 0:9378fe6db796 41 PinName d,
tbjazic 0:9378fe6db796 42 PinName e,
tbjazic 0:9378fe6db796 43 PinName f,
tbjazic 0:9378fe6db796 44 PinName g,
tbjazic 0:9378fe6db796 45 PinName dp,
tbjazic 4:21f0a3289449 46 ConnectionMode = CommonAnode);
tbjazic 4:21f0a3289449 47
tbjazic 4:21f0a3289449 48 /** Member function which initializes the display.
tbjazic 4:21f0a3289449 49 */
tbjazic 0:9378fe6db796 50 void init();
tbjazic 4:21f0a3289449 51
tbjazic 4:21f0a3289449 52 /** Member function which prints the character on the 7-segment display.
tbjazic 4:21f0a3289449 53 */
tbjazic 0:9378fe6db796 54 void print(char);
tbjazic 0:9378fe6db796 55 private:
tbjazic 0:9378fe6db796 56 BusInOut display;
tbjazic 0:9378fe6db796 57 ConnectionMode mode;
tbjazic 0:9378fe6db796 58 void turnOn(int);
tbjazic 0:9378fe6db796 59 };
tbjazic 0:9378fe6db796 60
tbjazic 0:9378fe6db796 61 #endif