Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:a0463263ea2b, 2011-11-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |