tim003 tim003
/
LV3-PAI-Grupa2-Tim003-Zadatak2
Mirhat Babić Granulo Eldar
main.cpp@0:0b26c0db9f27, 2014-03-17 (annotated)
- Committer:
- tim003
- Date:
- Mon Mar 17 10:55:17 2014 +0000
- Revision:
- 0:0b26c0db9f27
LV3-PAI-Grupa2-Tim003-Zadatak2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim003 | 0:0b26c0db9f27 | 1 | #include "mbed.h" |
tim003 | 0:0b26c0db9f27 | 2 | |
tim003 | 0:0b26c0db9f27 | 3 | #define incompetence 10 |
tim003 | 0:0b26c0db9f27 | 4 | |
tim003 | 0:0b26c0db9f27 | 5 | BusOut segments(dp26, dp27, dp5, dp6, dp28, dp1, dp2); |
tim003 | 0:0b26c0db9f27 | 6 | BusOut digit(dp23, dp24, dp26); |
tim003 | 0:0b26c0db9f27 | 7 | DigitalOut point(dp24); |
tim003 | 0:0b26c0db9f27 | 8 | |
tim003 | 0:0b26c0db9f27 | 9 | BusIn columns(dp9, dp10, dp11, dp13); |
tim003 | 0:0b26c0db9f27 | 10 | BusOut rows(dp16, dp15, dp17, dp18); |
tim003 | 0:0b26c0db9f27 | 11 | |
tim003 | 0:0b26c0db9f27 | 12 | int cifre[3] = {-1, -1, -1}; |
tim003 | 0:0b26c0db9f27 | 13 | int codes[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x078,0x0,0x10}; |
tim003 | 0:0b26c0db9f27 | 14 | int brojac = 0; |
tim003 | 0:0b26c0db9f27 | 15 | |
tim003 | 0:0b26c0db9f27 | 16 | |
tim003 | 0:0b26c0db9f27 | 17 | int pressed_button() { |
tim003 | 0:0b26c0db9f27 | 18 | |
tim003 | 0:0b26c0db9f27 | 19 | int table[] = {1, 2, 3, -1, 4, 5, 6, -1, |
tim003 | 0:0b26c0db9f27 | 20 | 7, 8, 9, 12, -1, 0, -1, -1}; |
tim003 | 0:0b26c0db9f27 | 21 | |
tim003 | 0:0b26c0db9f27 | 22 | for(int i = 0; i <= 3; i++) { |
tim003 | 0:0b26c0db9f27 | 23 | rows = (1 << i); |
tim003 | 0:0b26c0db9f27 | 24 | for(int j = 0; j <= 3; j++) |
tim003 | 0:0b26c0db9f27 | 25 | if(columns == (1 << j)) |
tim003 | 0:0b26c0db9f27 | 26 | return table[ i * 4 + j ]; |
tim003 | 0:0b26c0db9f27 | 27 | } |
tim003 | 0:0b26c0db9f27 | 28 | |
tim003 | 0:0b26c0db9f27 | 29 | return -1; |
tim003 | 0:0b26c0db9f27 | 30 | } |
tim003 | 0:0b26c0db9f27 | 31 | |
tim003 | 0:0b26c0db9f27 | 32 | void display() { |
tim003 | 0:0b26c0db9f27 | 33 | /*for(digit = 1; digit <= 4; digit = digit * 2) { |
tim003 | 0:0b26c0db9f27 | 34 | segments = codes[ cifre[digit / 2] ]; |
tim003 | 0:0b26c0db9f27 | 35 | point = 1; |
tim003 | 0:0b26c0db9f27 | 36 | wait_us(incompetence); |
tim003 | 0:0b26c0db9f27 | 37 | } |
tim003 | 0:0b26c0db9f27 | 38 | |
tim003 | 0:0b26c0db9f27 | 39 | */ |
tim003 | 0:0b26c0db9f27 | 40 | |
tim003 | 0:0b26c0db9f27 | 41 | |
tim003 | 0:0b26c0db9f27 | 42 | digit = 3; |
tim003 | 0:0b26c0db9f27 | 43 | segments = codes[ cifre[2]]; |
tim003 | 0:0b26c0db9f27 | 44 | wait_ms(2); |
tim003 | 0:0b26c0db9f27 | 45 | |
tim003 | 0:0b26c0db9f27 | 46 | digit = 7; |
tim003 | 0:0b26c0db9f27 | 47 | |
tim003 | 0:0b26c0db9f27 | 48 | digit = 5; |
tim003 | 0:0b26c0db9f27 | 49 | segments = codes[ cifre[1]]; |
tim003 | 0:0b26c0db9f27 | 50 | |
tim003 | 0:0b26c0db9f27 | 51 | wait_ms(2); |
tim003 | 0:0b26c0db9f27 | 52 | |
tim003 | 0:0b26c0db9f27 | 53 | digit = 7; |
tim003 | 0:0b26c0db9f27 | 54 | |
tim003 | 0:0b26c0db9f27 | 55 | digit = 6; |
tim003 | 0:0b26c0db9f27 | 56 | segments = codes[ cifre[0]]; |
tim003 | 0:0b26c0db9f27 | 57 | |
tim003 | 0:0b26c0db9f27 | 58 | |
tim003 | 0:0b26c0db9f27 | 59 | wait_ms(2); |
tim003 | 0:0b26c0db9f27 | 60 | |
tim003 | 0:0b26c0db9f27 | 61 | digit = 7; |
tim003 | 0:0b26c0db9f27 | 62 | |
tim003 | 0:0b26c0db9f27 | 63 | digit = 0; |
tim003 | 0:0b26c0db9f27 | 64 | segments = 7; |
tim003 | 0:0b26c0db9f27 | 65 | |
tim003 | 0:0b26c0db9f27 | 66 | |
tim003 | 0:0b26c0db9f27 | 67 | } |
tim003 | 0:0b26c0db9f27 | 68 | |
tim003 | 0:0b26c0db9f27 | 69 | void buffer(int button) { |
tim003 | 0:0b26c0db9f27 | 70 | brojac = 0; |
tim003 | 0:0b26c0db9f27 | 71 | for(int i = 0; i < 3; i++) |
tim003 | 0:0b26c0db9f27 | 72 | if(cifre[i] == -1) brojac++; |
tim003 | 0:0b26c0db9f27 | 73 | |
tim003 | 0:0b26c0db9f27 | 74 | |
tim003 | 0:0b26c0db9f27 | 75 | if(button >= 0 && button <= 9) { |
tim003 | 0:0b26c0db9f27 | 76 | for(int i = brojac; i > 0; i--) |
tim003 | 0:0b26c0db9f27 | 77 | cifre[i] = cifre[i - 1]; |
tim003 | 0:0b26c0db9f27 | 78 | cifre[0] = button; |
tim003 | 0:0b26c0db9f27 | 79 | } else if(button == 12) |
tim003 | 0:0b26c0db9f27 | 80 | for(int i = 0; i < 3; i++) |
tim003 | 0:0b26c0db9f27 | 81 | cifre[i] = -1; |
tim003 | 0:0b26c0db9f27 | 82 | } |
tim003 | 0:0b26c0db9f27 | 83 | |
tim003 | 0:0b26c0db9f27 | 84 | int main() { |
tim003 | 0:0b26c0db9f27 | 85 | |
tim003 | 0:0b26c0db9f27 | 86 | while(true) { |
tim003 | 0:0b26c0db9f27 | 87 | |
tim003 | 0:0b26c0db9f27 | 88 | |
tim003 | 0:0b26c0db9f27 | 89 | buffer(pressed_button()); |
tim003 | 0:0b26c0db9f27 | 90 | // cifre[0] = pressed_button(); |
tim003 | 0:0b26c0db9f27 | 91 | display(); |
tim003 | 0:0b26c0db9f27 | 92 | |
tim003 | 0:0b26c0db9f27 | 93 | |
tim003 | 0:0b26c0db9f27 | 94 | |
tim003 | 0:0b26c0db9f27 | 95 | } |
tim003 | 0:0b26c0db9f27 | 96 | |
tim003 | 0:0b26c0db9f27 | 97 | |
tim003 | 0:0b26c0db9f27 | 98 | } |