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:a23c5ee8213d, 2015-03-19 (annotated)
- Committer:
- diinnoo
- Date:
- Thu Mar 19 17:02:39 2015 +0000
- Revision:
- 0:a23c5ee8213d
Ivona Ivkovi?; Dino ?atrovi?;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
diinnoo | 0:a23c5ee8213d | 1 | #include "mbed.h" |
diinnoo | 0:a23c5ee8213d | 2 | #define dp23 P0_0 |
diinnoo | 0:a23c5ee8213d | 3 | |
diinnoo | 0:a23c5ee8213d | 4 | |
diinnoo | 0:a23c5ee8213d | 5 | |
diinnoo | 0:a23c5ee8213d | 6 | //tastatura: |
diinnoo | 0:a23c5ee8213d | 7 | BusOut Redovi (dp16, dp15, dp17, dp18); |
diinnoo | 0:a23c5ee8213d | 8 | BusIn Kolone (dp9, dp10, dp11, dp13); |
diinnoo | 0:a23c5ee8213d | 9 | |
diinnoo | 0:a23c5ee8213d | 10 | //display: |
diinnoo | 0:a23c5ee8213d | 11 | DigitalOut enableSignal(dp14); |
diinnoo | 0:a23c5ee8213d | 12 | BusOut odabirCifre(dp25,dp24,dp23); |
diinnoo | 0:a23c5ee8213d | 13 | BusOut segmentBroja(dp2,dp1,dp28,dp6,dp5,dp27,dp26); |
diinnoo | 0:a23c5ee8213d | 14 | int prazanDisplay = 127; |
diinnoo | 0:a23c5ee8213d | 15 | |
diinnoo | 0:a23c5ee8213d | 16 | int ucitajTipkuSaTastature() |
diinnoo | 0:a23c5ee8213d | 17 | { |
diinnoo | 0:a23c5ee8213d | 18 | int i = 0; int j = 0; |
diinnoo | 0:a23c5ee8213d | 19 | for(i = 0; i < 4; i++) |
diinnoo | 0:a23c5ee8213d | 20 | { |
diinnoo | 0:a23c5ee8213d | 21 | Redovi [i] = 1; |
diinnoo | 0:a23c5ee8213d | 22 | |
diinnoo | 0:a23c5ee8213d | 23 | for(j = 0; j < 4; j++) |
diinnoo | 0:a23c5ee8213d | 24 | { |
diinnoo | 0:a23c5ee8213d | 25 | if(Kolone [j] == 1) |
diinnoo | 0:a23c5ee8213d | 26 | { |
diinnoo | 0:a23c5ee8213d | 27 | if(i == 0 && j == 0) {Redovi[i] = 0; return 1; } |
diinnoo | 0:a23c5ee8213d | 28 | if(i == 0 && j == 1) {Redovi[i] = 0; return 2; } |
diinnoo | 0:a23c5ee8213d | 29 | if(i == 0 && j == 2) {Redovi[i] = 0; return 3; } |
diinnoo | 0:a23c5ee8213d | 30 | if(i == 1 && j == 0) {Redovi[i] = 0; return 4; } |
diinnoo | 0:a23c5ee8213d | 31 | if(i == 1 && j == 1) {Redovi[i] = 0; return 5; } |
diinnoo | 0:a23c5ee8213d | 32 | if(i == 1 && j == 2) {Redovi[i] = 0; return 6; } |
diinnoo | 0:a23c5ee8213d | 33 | if(i == 2 && j == 0) {Redovi[i] = 0; return 7; } |
diinnoo | 0:a23c5ee8213d | 34 | if(i == 2 && j == 1) {Redovi[i] = 0; return 8; } |
diinnoo | 0:a23c5ee8213d | 35 | if(i == 2 && j == 2) {Redovi[i] = 0; return 9; } |
diinnoo | 0:a23c5ee8213d | 36 | if(i == 3 && j == 1) {Redovi[i] = 0; return 0; } |
diinnoo | 0:a23c5ee8213d | 37 | if(i == 2 && j == 3) {Redovi[i] = 0; return -1; } |
diinnoo | 0:a23c5ee8213d | 38 | } |
diinnoo | 0:a23c5ee8213d | 39 | } |
diinnoo | 0:a23c5ee8213d | 40 | Redovi[i] = 0; |
diinnoo | 0:a23c5ee8213d | 41 | } |
diinnoo | 0:a23c5ee8213d | 42 | return 999; |
diinnoo | 0:a23c5ee8213d | 43 | } |
diinnoo | 0:a23c5ee8213d | 44 | |
diinnoo | 0:a23c5ee8213d | 45 | int brojevi[10] = {1, 79, 18, 6, 76, 36, 32, 14, 0, 4}; |
diinnoo | 0:a23c5ee8213d | 46 | int pamtiPoziciju = 0; |
diinnoo | 0:a23c5ee8213d | 47 | int cifre[3] = {888, 888, 888}; |
diinnoo | 0:a23c5ee8213d | 48 | |
diinnoo | 0:a23c5ee8213d | 49 | void ispisiCifru1(int cifra) |
diinnoo | 0:a23c5ee8213d | 50 | { |
diinnoo | 0:a23c5ee8213d | 51 | odabirCifre = 6; |
diinnoo | 0:a23c5ee8213d | 52 | segmentBroja = brojevi[cifra]; |
diinnoo | 0:a23c5ee8213d | 53 | wait(0.1); |
diinnoo | 0:a23c5ee8213d | 54 | cifre[2] = cifra; |
diinnoo | 0:a23c5ee8213d | 55 | } |
diinnoo | 0:a23c5ee8213d | 56 | |
diinnoo | 0:a23c5ee8213d | 57 | void ispisiCifru(int cifra) |
diinnoo | 0:a23c5ee8213d | 58 | { |
diinnoo | 0:a23c5ee8213d | 59 | //ispis stotinki: |
diinnoo | 0:a23c5ee8213d | 60 | odabirCifre = 7; |
diinnoo | 0:a23c5ee8213d | 61 | if(cifre[2] == 888) segmentBroja = prazanDisplay; |
diinnoo | 0:a23c5ee8213d | 62 | else segmentBroja = brojevi[cifre[2]]; |
diinnoo | 0:a23c5ee8213d | 63 | odabirCifre = 6; |
diinnoo | 0:a23c5ee8213d | 64 | |
diinnoo | 0:a23c5ee8213d | 65 | wait(0.001); |
diinnoo | 0:a23c5ee8213d | 66 | //ispis manje cifre sekundi: |
diinnoo | 0:a23c5ee8213d | 67 | odabirCifre = 7; |
diinnoo | 0:a23c5ee8213d | 68 | if(cifre[1] == 888) segmentBroja = prazanDisplay; |
diinnoo | 0:a23c5ee8213d | 69 | else segmentBroja = brojevi[cifre[1]]; |
diinnoo | 0:a23c5ee8213d | 70 | odabirCifre = 5; |
diinnoo | 0:a23c5ee8213d | 71 | |
diinnoo | 0:a23c5ee8213d | 72 | |
diinnoo | 0:a23c5ee8213d | 73 | wait(0.001); |
diinnoo | 0:a23c5ee8213d | 74 | |
diinnoo | 0:a23c5ee8213d | 75 | //ispis vece cifre sekundi: |
diinnoo | 0:a23c5ee8213d | 76 | odabirCifre = 7; |
diinnoo | 0:a23c5ee8213d | 77 | if(cifre[0] == 888) segmentBroja = prazanDisplay; |
diinnoo | 0:a23c5ee8213d | 78 | else segmentBroja = brojevi[cifre[0]]; |
diinnoo | 0:a23c5ee8213d | 79 | odabirCifre = 3; |
diinnoo | 0:a23c5ee8213d | 80 | wait(0.001); |
diinnoo | 0:a23c5ee8213d | 81 | } |
diinnoo | 0:a23c5ee8213d | 82 | |
diinnoo | 0:a23c5ee8213d | 83 | void pomjeriCifre(int nova) |
diinnoo | 0:a23c5ee8213d | 84 | { |
diinnoo | 0:a23c5ee8213d | 85 | cifre[0] = cifre[1] ; |
diinnoo | 0:a23c5ee8213d | 86 | cifre[1] = cifre[2]; |
diinnoo | 0:a23c5ee8213d | 87 | cifre[2] = nova; |
diinnoo | 0:a23c5ee8213d | 88 | } |
diinnoo | 0:a23c5ee8213d | 89 | |
diinnoo | 0:a23c5ee8213d | 90 | int brojac = 0; |
diinnoo | 0:a23c5ee8213d | 91 | |
diinnoo | 0:a23c5ee8213d | 92 | int main() { |
diinnoo | 0:a23c5ee8213d | 93 | enableSignal = 1; |
diinnoo | 0:a23c5ee8213d | 94 | odabirCifre = 6; pamtiPoziciju = 1; |
diinnoo | 0:a23c5ee8213d | 95 | segmentBroja = brojevi[8]; |
diinnoo | 0:a23c5ee8213d | 96 | wait(2); |
diinnoo | 0:a23c5ee8213d | 97 | int odabranaCifra = brojevi[0]; |
diinnoo | 0:a23c5ee8213d | 98 | while(1) { |
diinnoo | 0:a23c5ee8213d | 99 | if (ucitajTipkuSaTastature() != 999) { |
diinnoo | 0:a23c5ee8213d | 100 | brojac++; |
diinnoo | 0:a23c5ee8213d | 101 | odabranaCifra = ucitajTipkuSaTastature(); |
diinnoo | 0:a23c5ee8213d | 102 | if(brojac == 50) pomjeriCifre(odabranaCifra); |
diinnoo | 0:a23c5ee8213d | 103 | |
diinnoo | 0:a23c5ee8213d | 104 | } |
diinnoo | 0:a23c5ee8213d | 105 | if (odabranaCifra == -1) { pomjeriCifre(888); pomjeriCifre(888); segmentBroja = prazanDisplay; continue; } |
diinnoo | 0:a23c5ee8213d | 106 | if(ucitajTipkuSaTastature() == 999) brojac = 0; |
diinnoo | 0:a23c5ee8213d | 107 | ispisiCifru(odabranaCifra); |
diinnoo | 0:a23c5ee8213d | 108 | } |
diinnoo | 0:a23c5ee8213d | 109 | } |