hasakovic Nedzad Haris spahic

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 BusOut segmenti( dp2,dp1,dp28, dp6,dp5,dp27,dp26); // 7 segmenata
00003 int brojevi[10]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x0,0x04};
00004 
00005 DigitalOut redovi[4] = {dp18, dp17, dp16, dp15};
00006 DigitalIn kolone[4] = {dp13, dp11, dp10, dp9};
00007 
00008 BusOut mjesta(dp23, dp24, dp25);
00009 
00010 int prva(0), druga(0), treca(0);
00011 
00012 DigitalOut dp(dp4); // dec point
00013 
00014 void prikaziBroj(int n)
00015 {
00016     segmenti = brojevi[n];
00017 }
00018 
00019 
00020 
00021 void osvjezi()
00022 {
00023     mjesta = 6;
00024     prikaziBroj(druga);
00025     wait(0.01);
00026     mjesta=5;
00027     prikaziBroj(treca);
00028     wait(0.01);
00029     mjesta=3;
00030     prikaziBroj(prva);
00031     wait(0.01);
00032     dp=1;
00033 }
00034 
00035 void prikaz(int t, int ind)
00036 {
00037     if(ind==0)
00038         prva =t;
00039     else if(ind == 1)
00040         druga = t;
00041     else if(ind==2)
00042         treca = t;
00043 
00044     osvjezi();
00045 }
00046 
00047 int main()
00048 {
00049     int ind(0);
00050     bool pritisnuto(false);
00051     mjesta = 0;
00052     osvjezi();
00053 
00054 
00055     while(1)
00056     {
00057         for(int i=0;i<4;i++)
00058         {
00059             redovi[i] = 1;
00060 
00061             for(int j=0;j<4;j++)
00062             {
00063                 if(kolone[j]==1) // ako je nesto pritisnuto
00064                 {
00065 
00066                     if(i<3 && j<3 || i==3 && j==1) // ako je broj (0-9)
00067                     {
00068                         prikaz(i*3 + j + 1, ind);
00069                         pritisnuto = true;
00070 
00071                     }
00072                     else if(i==2 && j==3) // ako je C
00073                     {
00074                         prva = druga = treca = 0;
00075                         osvjezi();
00076                         ind = 0;
00077                     }
00078 
00079 
00080                 }
00081                 else
00082                 {
00083                     osvjezi();
00084 
00085                     if(pritisnuto)
00086                     {
00087                         pritisnuto = false;
00088                         if(ind<2)
00089                         ind++;
00090                     }
00091                 }
00092 
00093 
00094             }
00095             redovi[i] = 0;
00096 
00097         }
00098     }
00099 }