suu pen / Mbed 2 deprecated sevenSegmentLedLibraryExample

Dependencies:   mbed

Committer:
suupen
Date:
Sun Nov 20 00:29:16 2011 +0000
Revision:
0:a0463263ea2b
V1.0   2011/11/20

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:a0463263ea2b 1 /*********************************
suupen 0:a0463263ea2b 2 * sevenSegmentLed Library Example
suupen 0:a0463263ea2b 3 *
suupen 0:a0463263ea2b 4 * This program by one every second counts, do a 4-digit seven-segment LED display.
suupen 0:a0463263ea2b 5 *
suupen 0:a0463263ea2b 6 * seven segment numeric LED Display : LTC4627P
suupen 0:a0463263ea2b 7 * http://www.excesssolutions.com/mas_assets/acrobat/ES5721.pdf
suupen 0:a0463263ea2b 8 *
suupen 0:a0463263ea2b 9 * LTC4627T Resister mbed
suupen 0:a0463263ea2b 10 * Pin No Function [ohm] Function
suupen 0:a0463263ea2b 11 * ---------------------------------------------------------------------------
suupen 0:a0463263ea2b 12 * 1 Common Anode Digit 1 - P29
suupen 0:a0463263ea2b 13 * 2 Common Anode Digit 2 - P13
suupen 0:a0463263ea2b 14 * 3 Cathode D 200 P22
suupen 0:a0463263ea2b 15 * 4 Common Anode L1,L2,L3 - -
suupen 0:a0463263ea2b 16 * 5 Cathode E 200 P24
suupen 0:a0463263ea2b 17 * 6 Common Anode Digit 3 - P25
suupen 0:a0463263ea2b 18 * 7 Cathode D.p. 200 P30
suupen 0:a0463263ea2b 19 * 8 Common Anode Digit 4 - P27
suupen 0:a0463263ea2b 20 * 9 No Connection - -
suupen 0:a0463263ea2b 21 * 10 No Pin - -
suupen 0:a0463263ea2b 22 * 11 Cathode F 200 P16
suupen 0:a0463263ea2b 23 * 12 No Pin - -
suupen 0:a0463263ea2b 24 * 13 Cathode C,L3 200 P17
suupen 0:a0463263ea2b 25 * 14 Cathode A,L1 200 P14
suupen 0:a0463263ea2b 26 * 15 Cathode G 200 P19
suupen 0:a0463263ea2b 27 * 16 Cathode B,L2 200 P20
suupen 0:a0463263ea2b 28
suupen 0:a0463263ea2b 29
suupen 0:a0463263ea2b 30
suupen 0:a0463263ea2b 31 **********************************/
suupen 0:a0463263ea2b 32 #include "mbed.h"
suupen 0:a0463263ea2b 33
suupen 0:a0463263ea2b 34 #include "SevenSegLed.h"
suupen 0:a0463263ea2b 35
suupen 0:a0463263ea2b 36 // common type (0:anode common 1:cathode common)
suupen 0:a0463263ea2b 37 // |
suupen 0:a0463263ea2b 38 // | display mode (0:smooth 1:hard)
suupen 0:a0463263ea2b 39 // | |
suupen 0:a0463263ea2b 40 // | | segA segB segC segD segE segF segG segP com1 com2 com3 com4
suupen 0:a0463263ea2b 41 // | | | | | | | | | | | | | |
suupen 0:a0463263ea2b 42 SevenSegLed segmentled(0, 0, p14, p20, p17, p22, p24, p16, p19, p30, p29, p13, p25, p27);
suupen 0:a0463263ea2b 43
suupen 0:a0463263ea2b 44
suupen 0:a0463263ea2b 45 // 1 2 3 4digit
suupen 0:a0463263ea2b 46 // | | | |
suupen 0:a0463263ea2b 47 uint8_t D_7seg[4] = {0, 0, 0, 0}; // seven segment digit number (0x00:"0", 0x01:"1", ... , 0x09:"9", 0x0A:"A", ... , 0x0F:"F", other:" ")
suupen 0:a0463263ea2b 48 uint8_t D_dot[4] = {0, 0, 0, 0}; // seven segment digit dotpoint. (0:off 1:on)
suupen 0:a0463263ea2b 49
suupen 0:a0463263ea2b 50
suupen 0:a0463263ea2b 51 Timer timer; // 1second timer
suupen 0:a0463263ea2b 52
suupen 0:a0463263ea2b 53 int main() {
suupen 0:a0463263ea2b 54 uint16_t counter = 0;
suupen 0:a0463263ea2b 55
suupen 0:a0463263ea2b 56 timer.start();
suupen 0:a0463263ea2b 57
suupen 0:a0463263ea2b 58 while(1) {
suupen 0:a0463263ea2b 59 // After one second to start the process
suupen 0:a0463263ea2b 60 if(timer.read_ms() >= 1000){
suupen 0:a0463263ea2b 61 timer.reset();
suupen 0:a0463263ea2b 62 counter++;
suupen 0:a0463263ea2b 63
suupen 0:a0463263ea2b 64 // Display digit data updates
suupen 0:a0463263ea2b 65 D_7seg[0] = (uint8_t)((counter & 0xF000) >> 12);
suupen 0:a0463263ea2b 66 D_7seg[1] = (uint8_t)((counter & 0x0F00) >> 8);
suupen 0:a0463263ea2b 67 D_7seg[2] = (uint8_t)((counter & 0x00F0) >> 4);
suupen 0:a0463263ea2b 68 D_7seg[3] = (uint8_t)(counter & 0x000F);
suupen 0:a0463263ea2b 69
suupen 0:a0463263ea2b 70 // Display dot point data updates
suupen 0:a0463263ea2b 71 D_dot[0] = 0;
suupen 0:a0463263ea2b 72 D_dot[1] = 0;
suupen 0:a0463263ea2b 73 D_dot[2] = 0;
suupen 0:a0463263ea2b 74 D_dot[3] = 0;
suupen 0:a0463263ea2b 75
suupen 0:a0463263ea2b 76 // dot point data set
suupen 0:a0463263ea2b 77 D_dot[counter & 0x0003] = 1;
suupen 0:a0463263ea2b 78 }
suupen 0:a0463263ea2b 79
suupen 0:a0463263ea2b 80 // seven segment display to output data
suupen 0:a0463263ea2b 81 // This function, please repeat the process in less than 1ms.
suupen 0:a0463263ea2b 82 segmentled.SevenSegLed_main(D_7seg, D_dot);
suupen 0:a0463263ea2b 83
suupen 0:a0463263ea2b 84 }
suupen 0:a0463263ea2b 85 }