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.
displayDriver.cpp@17:082d51603f20, 2020-12-01 (annotated)
- Committer:
- manavkoolz
- Date:
- Tue Dec 01 09:55:54 2020 +0000
- Revision:
- 17:082d51603f20
- Child:
- 18:ef0569bea7e9
Adds multiplexing display code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
manavkoolz | 17:082d51603f20 | 1 | DigitalOut a(p19); |
manavkoolz | 17:082d51603f20 | 2 | DigitalOut b(p10); |
manavkoolz | 17:082d51603f20 | 3 | DigitalOut c(p9); |
manavkoolz | 17:082d51603f20 | 4 | DigitalOut d(p7); |
manavkoolz | 17:082d51603f20 | 5 | DigitalOut e(p8); |
manavkoolz | 17:082d51603f20 | 6 | DigitalOut f(p20); |
manavkoolz | 17:082d51603f20 | 7 | DigitalOut g(p17); |
manavkoolz | 17:082d51603f20 | 8 | DigitalOut dp(p18); |
manavkoolz | 17:082d51603f20 | 9 | |
manavkoolz | 17:082d51603f20 | 10 | DigitalOut cat[] = {cat1, cat2}; |
manavkoolz | 17:082d51603f20 | 11 | DigitalOut display[] = {a, b, c, d, e, f, g}; |
manavkoolz | 17:082d51603f20 | 12 | |
manavkoolz | 17:082d51603f20 | 13 | const int digits[10][7] = { |
manavkoolz | 17:082d51603f20 | 14 | {1, 1, 1, 1, 1, 1, 0}, |
manavkoolz | 17:082d51603f20 | 15 | {0, 1, 1, 0, 0, 0, 0}, |
manavkoolz | 17:082d51603f20 | 16 | {1, 1, 0, 1, 1, 0, 1}, |
manavkoolz | 17:082d51603f20 | 17 | {1, 1, 1, 1, 0, 0, 1}, |
manavkoolz | 17:082d51603f20 | 18 | {0, 1, 1, 0, 0, 1, 1}, |
manavkoolz | 17:082d51603f20 | 19 | {1, 0, 1, 1, 0, 1, 1}, |
manavkoolz | 17:082d51603f20 | 20 | {1, 0, 1, 1, 1, 1, 1}, |
manavkoolz | 17:082d51603f20 | 21 | {1, 1, 1, 0, 0, 0, 0}, |
manavkoolz | 17:082d51603f20 | 22 | {1, 1, 1, 1, 1, 1, 1}, |
manavkoolz | 17:082d51603f20 | 23 | {1, 1, 1, 1, 0, 1, 1} |
manavkoolz | 17:082d51603f20 | 24 | }; |
manavkoolz | 17:082d51603f20 | 25 | |
manavkoolz | 17:082d51603f20 | 26 | void display_num(float num) { |
manavkoolz | 17:082d51603f20 | 27 | int dpi = 1; |
manavkoolz | 17:082d51603f20 | 28 | int numi = (int)(num); |
manavkoolz | 17:082d51603f20 | 29 | |
manavkoolz | 17:082d51603f20 | 30 | if (((int)num)/10 == 0) { |
manavkoolz | 17:082d51603f20 | 31 | dpi = 0; |
manavkoolz | 17:082d51603f20 | 32 | numi = (int)(num*10); |
manavkoolz | 17:082d51603f20 | 33 | } |
manavkoolz | 17:082d51603f20 | 34 | |
manavkoolz | 17:082d51603f20 | 35 | int disp_digits[] = {numi/10, numi%10}; |
manavkoolz | 17:082d51603f20 | 36 | |
manavkoolz | 17:082d51603f20 | 37 | while (true) { |
manavkoolz | 17:082d51603f20 | 38 | for (int d=0; d<2; d++) { |
manavkoolz | 17:082d51603f20 | 39 | cat[d] = 1; |
manavkoolz | 17:082d51603f20 | 40 | cat[(d+1)%2] = 0; |
manavkoolz | 17:082d51603f20 | 41 | for (int seg=0; seg<7; seg++) { |
manavkoolz | 17:082d51603f20 | 42 | if (digits[disp_digits[d]][seg] == 1) { |
manavkoolz | 17:082d51603f20 | 43 | display[seg] = digits[disp_digits[d]][seg]; |
manavkoolz | 17:082d51603f20 | 44 | display[seg] = 0; |
manavkoolz | 17:082d51603f20 | 45 | } |
manavkoolz | 17:082d51603f20 | 46 | } |
manavkoolz | 17:082d51603f20 | 47 | if (d == dpi) { |
manavkoolz | 17:082d51603f20 | 48 | dp = 1; |
manavkoolz | 17:082d51603f20 | 49 | dp = 0; |
manavkoolz | 17:082d51603f20 | 50 | } |
manavkoolz | 17:082d51603f20 | 51 | } |
manavkoolz | 17:082d51603f20 | 52 | } |
manavkoolz | 17:082d51603f20 | 53 | } |