Mirhat Babić Granulo Eldar

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }