Solutions for the 7-Segment Display experiments for LPC812 MAX
Dependencies: lpc812_exp_lib_PCF8591 mbed
main.cpp@0:e64372861297, 2013-11-22 (annotated)
- Committer:
- embeddedartists
- Date:
- Fri Nov 22 14:07:10 2013 +0000
- Revision:
- 0:e64372861297
First version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
embeddedartists | 0:e64372861297 | 1 | #include "mbed.h" |
embeddedartists | 0:e64372861297 | 2 | |
embeddedartists | 0:e64372861297 | 3 | DigitalIn button(D0); |
embeddedartists | 0:e64372861297 | 4 | |
embeddedartists | 0:e64372861297 | 5 | DigitalOut segA(D4); |
embeddedartists | 0:e64372861297 | 6 | DigitalOut segB(D7); |
embeddedartists | 0:e64372861297 | 7 | DigitalOut segC(D8); |
embeddedartists | 0:e64372861297 | 8 | DigitalOut segD(D10); |
embeddedartists | 0:e64372861297 | 9 | DigitalOut segE(D11); |
embeddedartists | 0:e64372861297 | 10 | DigitalOut segF(D12); |
embeddedartists | 0:e64372861297 | 11 | DigitalOut segG(D13); |
embeddedartists | 0:e64372861297 | 12 | DigitalOut segDP(D9); |
embeddedartists | 0:e64372861297 | 13 | |
embeddedartists | 0:e64372861297 | 14 | static void show(int val) { |
embeddedartists | 0:e64372861297 | 15 | // turn off all segments |
embeddedartists | 0:e64372861297 | 16 | segA = segB = segC = segD = segE = segF = segG = 1; |
embeddedartists | 0:e64372861297 | 17 | |
embeddedartists | 0:e64372861297 | 18 | // turn on segments depending on what to show |
embeddedartists | 0:e64372861297 | 19 | switch (val) { |
embeddedartists | 0:e64372861297 | 20 | case 0: segA = segB = segC = segD = segE = segF = 0; break; |
embeddedartists | 0:e64372861297 | 21 | case 1: segB = segC = 0; break; |
embeddedartists | 0:e64372861297 | 22 | case 2: segA = segB = segD = segE = segG = 0; break; |
embeddedartists | 0:e64372861297 | 23 | case 3: segA = segB = segC = segD = segG = 0; break; |
embeddedartists | 0:e64372861297 | 24 | case 4: segB = segC = segF = segG = 0; break; |
embeddedartists | 0:e64372861297 | 25 | case 5: segA = segC = segD = segF = segG = 0; break; |
embeddedartists | 0:e64372861297 | 26 | case 6: segA = segC = segD = segE = segF = segG = 0; break; |
embeddedartists | 0:e64372861297 | 27 | case 7: segA = segB = segC = 0; break; |
embeddedartists | 0:e64372861297 | 28 | case 8: segA = segB = segC = segD = segE = segF = segG = 0; break; |
embeddedartists | 0:e64372861297 | 29 | case 9: segA = segB = segC = segD = segF = segG = 0; break; |
embeddedartists | 0:e64372861297 | 30 | |
embeddedartists | 0:e64372861297 | 31 | case 'A': segA = 0; break; |
embeddedartists | 0:e64372861297 | 32 | case 'B': segB = 0; break; |
embeddedartists | 0:e64372861297 | 33 | case 'C': segC = 0; break; |
embeddedartists | 0:e64372861297 | 34 | case 'D': segD = 0; break; |
embeddedartists | 0:e64372861297 | 35 | case 'E': segE = 0; break; |
embeddedartists | 0:e64372861297 | 36 | case 'F': segF = 0; break; |
embeddedartists | 0:e64372861297 | 37 | case 'G': segG = 0; break; |
embeddedartists | 0:e64372861297 | 38 | } |
embeddedartists | 0:e64372861297 | 39 | } |
embeddedartists | 0:e64372861297 | 40 | |
embeddedartists | 0:e64372861297 | 41 | static void experiment2_alt1() |
embeddedartists | 0:e64372861297 | 42 | { |
embeddedartists | 0:e64372861297 | 43 | // Enter forever loop |
embeddedartists | 0:e64372861297 | 44 | while(1) { |
embeddedartists | 0:e64372861297 | 45 | for (int i = 0; i < 10; i++) { |
embeddedartists | 0:e64372861297 | 46 | // Delay a specified period of time or wait for push-button to be pressed |
embeddedartists | 0:e64372861297 | 47 | wait(0.3); |
embeddedartists | 0:e64372861297 | 48 | |
embeddedartists | 0:e64372861297 | 49 | show(i); |
embeddedartists | 0:e64372861297 | 50 | } |
embeddedartists | 0:e64372861297 | 51 | } |
embeddedartists | 0:e64372861297 | 52 | } |
embeddedartists | 0:e64372861297 | 53 | |
embeddedartists | 0:e64372861297 | 54 | static void experiment2_alt2() |
embeddedartists | 0:e64372861297 | 55 | { |
embeddedartists | 0:e64372861297 | 56 | // Enable button |
embeddedartists | 0:e64372861297 | 57 | button.mode(PullUp); |
embeddedartists | 0:e64372861297 | 58 | |
embeddedartists | 0:e64372861297 | 59 | // Enter forever loop |
embeddedartists | 0:e64372861297 | 60 | while(1) { |
embeddedartists | 0:e64372861297 | 61 | for (int i = 0; i < 10; i++) { |
embeddedartists | 0:e64372861297 | 62 | // Delay a specified period of time or wait for push-button to be pressed |
embeddedartists | 0:e64372861297 | 63 | while(button); |
embeddedartists | 0:e64372861297 | 64 | while(!button); |
embeddedartists | 0:e64372861297 | 65 | |
embeddedartists | 0:e64372861297 | 66 | show(i); |
embeddedartists | 0:e64372861297 | 67 | } |
embeddedartists | 0:e64372861297 | 68 | } |
embeddedartists | 0:e64372861297 | 69 | } |
embeddedartists | 0:e64372861297 | 70 | |
embeddedartists | 0:e64372861297 | 71 | static void experiment2_alt3() |
embeddedartists | 0:e64372861297 | 72 | { |
embeddedartists | 0:e64372861297 | 73 | // Enter forever loop |
embeddedartists | 0:e64372861297 | 74 | while(1) { |
embeddedartists | 0:e64372861297 | 75 | for (int i = 'A'; i < 'G'; i++) { |
embeddedartists | 0:e64372861297 | 76 | // Delay a specified period of time or wait for push-button to be pressed |
embeddedartists | 0:e64372861297 | 77 | wait(0.3); |
embeddedartists | 0:e64372861297 | 78 | |
embeddedartists | 0:e64372861297 | 79 | show(i); |
embeddedartists | 0:e64372861297 | 80 | } |
embeddedartists | 0:e64372861297 | 81 | } |
embeddedartists | 0:e64372861297 | 82 | } |
embeddedartists | 0:e64372861297 | 83 | |
embeddedartists | 0:e64372861297 | 84 | |
embeddedartists | 0:e64372861297 | 85 | int main() |
embeddedartists | 0:e64372861297 | 86 | { |
embeddedartists | 0:e64372861297 | 87 | // turn off all segments |
embeddedartists | 0:e64372861297 | 88 | segA = segB = segC = segD = segE = segF = segG = segDP = 1; |
embeddedartists | 0:e64372861297 | 89 | |
embeddedartists | 0:e64372861297 | 90 | //experiment2_alt1(); // Automatic counting |
embeddedartists | 0:e64372861297 | 91 | //experiment2_alt2(); // Push button advances counting |
embeddedartists | 0:e64372861297 | 92 | experiment2_alt3(); // Automatic running one |
embeddedartists | 0:e64372861297 | 93 | } |